| 20260922 | 20260922_ARI@COL | away | Michael Soroka | Michael Soroka | True | 5.0 | 7.0 | 6 | 2 | 1 | -1 | 2/2 | 2/1 | 4/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.450479233226837,
"WHIP": 1.1309904153354633,
"IP": 104.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.281,
"recent_avg_IP": 3.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0045,
"sample_weight": 1.0,
"run_prevention_factor": 1.0004,
"strikeout_factor": 0.9946,
"walk_factor": 0.939,
"homer_factor": 0.9935,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 6.1,
"woba": 0.287,
"xwoba": 0.315,
"barrel_percent": 8.1,
"hard_hit_percent": 33.4,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 83,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "647336",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 12.0,
"R": 12.0,
"H": 20.0,
"BB": 9.0,
"SO": 22.0,
"HR": 2.0,
"BF": 96.0,
"Pitches": 379.0
},
"per_game": {
"IP": 4.1,
"ER": 2.4,
"R": 2.4,
"H": 4.0,
"BB": 1.8,
"SO": 4.4,
"HR": 0.4,
"BF": 19.2,
"Pitches": 75.8
},
"rates": {
"ERA": 4.8358,
"WHIP": 1.2985,
"ER_per_IP": 0.53731,
"H_per_IP": 0.89552,
"BB_per_IP": 0.40299,
"SO_per_IP": 0.98507,
"HR_per_IP": 0.08955
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 20.0,
"R": 20.0,
"H": 37.0,
"BB": 12.0,
"SO": 44.0,
"HR": 4.0,
"BF": 196.0,
"Pitches": 764.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 3.7,
"BB": 1.2,
"SO": 4.4,
"HR": 0.4,
"BF": 19.6,
"Pitches": 76.4
},
"rates": {
"ERA": 3.6486,
"WHIP": 0.9932,
"ER_per_IP": 0.40541,
"H_per_IP": 0.75,
"BB_per_IP": 0.24324,
"SO_per_IP": 0.89189,
"HR_per_IP": 0.08108
}
},
"season": {
"games": 20,
"totals": {
"IP": 104.1,
"ER": 40.0,
"R": 40.0,
"H": 92.0,
"BB": 26.0,
"SO": 101.0,
"HR": 8.0,
"BF": 429.0,
"Pitches": 1669.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 4.6,
"BB": 1.3,
"SO": 5.05,
"HR": 0.4,
"BF": 21.45,
"Pitches": 83.45
},
"rates": {
"ERA": 3.4505,
"WHIP": 1.131,
"ER_per_IP": 0.38339,
"H_per_IP": 0.88179,
"BB_per_IP": 0.2492,
"SO_per_IP": 0.96805,
"HR_per_IP": 0.07668
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.264,
"predicted_H": 4.186,
"predicted_BB": 1.58,
"predicted_SO": 4.557,
"predicted_HR": 0.467,
"predicted_ERA": 4.2324,
"predicted_WHIP": 1.1978
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.264,
"final": 2.1493,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.186,
"final": 3.2362,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.58,
"final": 1.7625,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.557,
"final": 4.315,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.467,
"final": 0.2641,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2324,
"final": 4.2324,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1978,
"final": 1.1978,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 20,
"H": 37,
"BB": 12,
"SO": 44,
"HR": 4,
"ERA": 3.648648648648649,
"WHIP": 0.9932432432432433,
"K9": 8.027027027027028,
"HR9": 0.7297297297297298,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 0.8987118163145282,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "647336",
"player_name": "Michael Soroka",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "ARI",
"games": 156,
"wins": 82,
"losses": 74,
"win_pct": 0.5256,
"runs_scored": 693.0,
"runs_allowed": 694.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0064,
"avg_runs_scored": 4.4423,
"avg_runs_allowed": 4.4487,
"offense_index": 0.9921,
"defense_index": 1.0065,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.0,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.014
},
"opponent": {
"team": "COL",
"games": 156,
"wins": 57,
"losses": 99,
"win_pct": 0.3654,
"runs_scored": 727.0,
"runs_allowed": 904.0,
"run_differential": -177.0,
"run_differential_per_game": -1.1346,
"avg_runs_scored": 4.6603,
"avg_runs_allowed": 5.7949,
"offense_index": 1.0407,
"defense_index": 0.7727,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.4,
"run_differential": -23.0
},
"available": true,
"quality_score": -0.3588
},
"edges": {
"quality_edge": 0.3448,
"offense_edge": -0.0079,
"opponent_offense_edge": 0.0407,
"defense_strength": 0.0065,
"opponent_defense_weakness": 0.2273,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0124,
"run_prevention": 0.9886,
"strikeout": 1.0071
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "647336",
"profile": {
"available": true,
"pitcher_id": "647336",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 406.0,
"k_percent": 23.5,
"bb_percent": 6.1,
"woba": 0.287,
"xwoba": 0.315,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 33.4,
"avg_best_speed": 76.3304,
"avg_hyper_speed": 93.3674,
"whiff_percent": 22.5,
"swing_percent": 49.6
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.092,
"command_and_miss": 0.1279,
"regression_edge": -0.8,
"xwoba_edge": -0.1071,
"barrel_edge": -0.2,
"hard_hit_edge": 0.6429,
"whiff_edge": -0.3643,
"bb_edge": 0.7625,
"pitch_design_score": -0.1155
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "647336",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 61,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 87.79524232123826,
"release_spin_rate": 2598.719346360736,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 87.79524232123826,
"release_spin_rate": 2598.719346360736,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.7952,
"release_spin_rate": 2598.7193,
"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.1155,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8249,
"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.0045,
"sample_weight": 1.0,
"run_prevention_factor": 1.0004,
"strikeout_factor": 0.9946,
"walk_factor": 0.939,
"homer_factor": 0.9935,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "647336",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0004,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0004,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.939,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9935,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9946,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"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/20260922_ARI@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_ARI@COL | home | Kyle Freeland | Kyle Freeland | True | 4.2 | 3.0 | -5 | 5 | 5 | 0 | 6/9 | 2/1 | 2/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.381818181818181,
"WHIP": 1.4727272727272727,
"IP": 128.1,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.347,
"recent_avg_IP": 5.8,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5113,
"sample_weight": 1.0,
"run_prevention_factor": 1.0435,
"strikeout_factor": 0.9626,
"walk_factor": 0.915,
"homer_factor": 1.1234,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 4.9,
"woba": 0.377,
"xwoba": 0.35,
"barrel_percent": 10.6,
"hard_hit_percent": 43.1,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 561,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607536",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 10.0,
"R": 12.0,
"H": 28.0,
"BB": 7.0,
"SO": 19.0,
"HR": 6.0,
"BF": 122.0,
"Pitches": 427.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.4,
"H": 5.6,
"BB": 1.4,
"SO": 3.8,
"HR": 1.2,
"BF": 24.4,
"Pitches": 85.4
},
"rates": {
"ERA": 3.1034,
"WHIP": 1.2069,
"ER_per_IP": 0.34483,
"H_per_IP": 0.96552,
"BB_per_IP": 0.24138,
"SO_per_IP": 0.65517,
"HR_per_IP": 0.2069
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 31.0,
"R": 33.0,
"H": 62.0,
"BB": 11.0,
"SO": 43.0,
"HR": 11.0,
"BF": 240.0,
"Pitches": 854.0
},
"per_game": {
"IP": 5.2,
"ER": 3.1,
"R": 3.3,
"H": 6.2,
"BB": 1.1,
"SO": 4.3,
"HR": 1.1,
"BF": 24.0,
"Pitches": 85.4
},
"rates": {
"ERA": 4.9527,
"WHIP": 1.2959,
"ER_per_IP": 0.5503,
"H_per_IP": 1.10059,
"BB_per_IP": 0.19527,
"SO_per_IP": 0.76331,
"HR_per_IP": 0.19527
}
},
"season": {
"games": 24,
"totals": {
"IP": 128.1,
"ER": 91.0,
"R": 95.0,
"H": 161.0,
"BB": 28.0,
"SO": 104.0,
"HR": 27.0,
"BF": 574.0,
"Pitches": 2056.0
},
"per_game": {
"IP": 5.1,
"ER": 3.7917,
"R": 3.9583,
"H": 6.7083,
"BB": 1.1667,
"SO": 4.3333,
"HR": 1.125,
"BF": 23.9167,
"Pitches": 85.6667
},
"rates": {
"ERA": 6.3818,
"WHIP": 1.4727,
"ER_per_IP": 0.70909,
"H_per_IP": 1.25455,
"BB_per_IP": 0.21818,
"SO_per_IP": 0.81039,
"HR_per_IP": 0.21039
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.767,
"predicted_H": 5.921,
"predicted_BB": 1.388,
"predicted_SO": 4.27,
"predicted_HR": 1.089,
"predicted_ERA": 4.4379,
"predicted_WHIP": 1.3024
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.767,
"final": 3.7112,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.921,
"final": 5.9544,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.388,
"final": 1.6468,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.27,
"final": 3.3102,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.089,
"final": 1.4742,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4379,
"final": 4.4379,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3024,
"final": 1.3024,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 31,
"H": 62,
"BB": 11,
"SO": 43,
"HR": 11,
"ERA": 4.952662721893492,
"WHIP": 1.2958579881656807,
"K9": 6.869822485207101,
"HR9": 1.757396449704142,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 1.052978768177634,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 5,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607536",
"player_name": "Kyle Freeland",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 156,
"wins": 57,
"losses": 99,
"win_pct": 0.3654,
"runs_scored": 727.0,
"runs_allowed": 904.0,
"run_differential": -177.0,
"run_differential_per_game": -1.1346,
"avg_runs_scored": 4.6603,
"avg_runs_allowed": 5.7949,
"offense_index": 1.0407,
"defense_index": 0.7727,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.4,
"run_differential": -23.0
},
"available": true,
"quality_score": -0.3588
},
"opponent": {
"team": "ARI",
"games": 156,
"wins": 82,
"losses": 74,
"win_pct": 0.5256,
"runs_scored": 693.0,
"runs_allowed": 694.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0064,
"avg_runs_scored": 4.4423,
"avg_runs_allowed": 4.4487,
"offense_index": 0.9921,
"defense_index": 1.0065,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.0,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.014
},
"edges": {
"quality_edge": -0.3448,
"offense_edge": 0.0407,
"opponent_offense_edge": -0.0079,
"defense_strength": -0.2273,
"opponent_defense_weakness": -0.0065,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9797,
"run_prevention": 1.0387,
"strikeout": 0.9903
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607536",
"profile": {
"available": true,
"pitcher_id": "607536",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 18.1,
"bb_percent": 4.9,
"woba": 0.377,
"xwoba": 0.35,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 10.6,
"hard_hit_percent": 43.1,
"avg_best_speed": 79.712,
"avg_hyper_speed": 95.1875,
"whiff_percent": 22.3,
"swing_percent": 51.1
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.9501,
"command_and_miss": -0.1693,
"regression_edge": 0.7714,
"xwoba_edge": -1.1071,
"barrel_edge": -0.7556,
"hard_hit_edge": -0.7429,
"whiff_edge": -0.3929,
"bb_edge": 1.0625,
"pitch_design_score": -0.1539
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607536",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.10896327807998,
"release_spin_rate": 2265.301600180975,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.10896327807998,
"release_spin_rate": 2265.301600180975,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.109,
"release_spin_rate": 2265.3016,
"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.1539,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0994,
"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.5113,
"sample_weight": 1.0,
"run_prevention_factor": 1.0435,
"strikeout_factor": 0.9626,
"walk_factor": 0.915,
"homer_factor": 1.1234,
"woba_minus_xwoba": 0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607536",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0435,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0435,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.915,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1234,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9626,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260922_ARI@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_CHW@KC | away | Anthony Kay | Anthony Kay | True | 5.0 | 4.0 | -3 | 3 | 4 | 1 | 7/7 | 0/1 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.409395973154362,
"WHIP": 1.3557046979865772,
"IP": 149.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 4.897,
"recent_avg_IP": 4.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3325,
"sample_weight": 1.0,
"run_prevention_factor": 1.0283,
"strikeout_factor": 0.9654,
"walk_factor": 0.975,
"homer_factor": 1.0446,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 7.9,
"woba": 0.337,
"xwoba": 0.34,
"barrel_percent": 8.1,
"hard_hit_percent": 38.6,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 142,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641743",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 17.0,
"R": 20.0,
"H": 25.0,
"BB": 8.0,
"SO": 17.0,
"HR": 4.0,
"BF": 104.0,
"Pitches": 403.0
},
"per_game": {
"IP": 4.1,
"ER": 3.4,
"R": 4.0,
"H": 5.0,
"BB": 1.6,
"SO": 3.4,
"HR": 0.8,
"BF": 20.8,
"Pitches": 80.6
},
"rates": {
"ERA": 7.0615,
"WHIP": 1.5231,
"ER_per_IP": 0.78462,
"H_per_IP": 1.15385,
"BB_per_IP": 0.36923,
"SO_per_IP": 0.78462,
"HR_per_IP": 0.18462
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 27.0,
"R": 30.0,
"H": 54.0,
"BB": 13.0,
"SO": 41.0,
"HR": 6.0,
"BF": 225.0,
"Pitches": 852.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 3.0,
"H": 5.4,
"BB": 1.3,
"SO": 4.1,
"HR": 0.6,
"BF": 22.5,
"Pitches": 85.2
},
"rates": {
"ERA": 4.7961,
"WHIP": 1.3224,
"ER_per_IP": 0.53289,
"H_per_IP": 1.06579,
"BB_per_IP": 0.25658,
"SO_per_IP": 0.80921,
"HR_per_IP": 0.11842
}
},
"season": {
"games": 31,
"totals": {
"IP": 149.0,
"ER": 73.0,
"R": 80.0,
"H": 149.0,
"BB": 53.0,
"SO": 121.0,
"HR": 20.0,
"BF": 669.0,
"Pitches": 2649.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3548,
"R": 2.5806,
"H": 4.8065,
"BB": 1.7097,
"SO": 3.9032,
"HR": 0.6452,
"BF": 21.5806,
"Pitches": 85.4516
},
"rates": {
"ERA": 4.4094,
"WHIP": 1.3557,
"ER_per_IP": 0.48993,
"H_per_IP": 1.0,
"BB_per_IP": 0.3557,
"SO_per_IP": 0.81208,
"HR_per_IP": 0.13423
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.875,
"predicted_H": 4.994,
"predicted_BB": 1.548,
"predicted_SO": 3.794,
"predicted_HR": 0.701,
"predicted_ERA": 5.5786,
"predicted_WHIP": 1.4106
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.875,
"final": 2.9261,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.994,
"final": 5.8138,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.548,
"final": 0.9154,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.794,
"final": 4.2869,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.701,
"final": 0.4145,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5786,
"final": 5.5786,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4106,
"final": 1.4106,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 27,
"H": 54,
"BB": 13,
"SO": 41,
"HR": 6,
"ERA": 4.796052631578947,
"WHIP": 1.3223684210526314,
"K9": 7.282894736842104,
"HR9": 1.0657894736842104,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.0360228938394216,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641743",
"player_name": "Anthony Kay",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 156,
"wins": 80,
"losses": 76,
"win_pct": 0.5128,
"runs_scored": 733.0,
"runs_allowed": 691.0,
"run_differential": 42.0,
"run_differential_per_game": 0.2692,
"avg_runs_scored": 4.6987,
"avg_runs_allowed": 4.4295,
"offense_index": 1.0493,
"defense_index": 1.0109,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.5,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0439
},
"opponent": {
"team": "KC",
"games": 156,
"wins": 67,
"losses": 89,
"win_pct": 0.4295,
"runs_scored": 656.0,
"runs_allowed": 758.0,
"run_differential": -102.0,
"run_differential_per_game": -0.6538,
"avg_runs_scored": 4.2051,
"avg_runs_allowed": 4.859,
"offense_index": 0.9391,
"defense_index": 0.9216,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.2102
},
"edges": {
"quality_edge": 0.2541,
"offense_edge": 0.0493,
"opponent_offense_edge": -0.0609,
"defense_strength": 0.0109,
"opponent_defense_weakness": 0.0784,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0129,
"run_prevention": 0.9765,
"strikeout": 1.0125
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641743",
"profile": {
"available": true,
"pitcher_id": "641743",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 642.0,
"k_percent": 18.1,
"bb_percent": 7.9,
"woba": 0.337,
"xwoba": 0.34,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.6,
"avg_best_speed": 76.5358,
"avg_hyper_speed": 94.1794,
"whiff_percent": 22.8,
"swing_percent": 46.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.4434,
"command_and_miss": -0.2943,
"regression_edge": -0.0857,
"xwoba_edge": -0.8214,
"barrel_edge": -0.2,
"hard_hit_edge": -0.1,
"whiff_edge": -0.3214,
"bb_edge": 0.3125,
"pitch_design_score": 0.011
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 90.05311954879002,
"release_spin_rate": 2291.8657796524776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 90.05311954879002,
"release_spin_rate": 2291.8657796524776,
"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.0531,
"release_spin_rate": 2291.8658,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.011,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0783,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3325,
"sample_weight": 1.0,
"run_prevention_factor": 1.0283,
"strikeout_factor": 0.9654,
"walk_factor": 0.975,
"homer_factor": 1.0446,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641743",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0283,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0283,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.975,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0446,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9654,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260922_CHW@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_CHW@KC | home | Daniel Lynch IV | Daniel Lynch IV | True | 5.2 | 4.0 | -5 | 1 | 9 | 8 | 3/7 | 3/3 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.28695652173913,
"WHIP": 1.0695652173913044,
"IP": 76.2,
"games_started": null,
"games_pitched": 54,
"role_avg_IP": 3.833,
"recent_avg_IP": 4.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0294,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 0.958,
"walk_factor": 0.965,
"homer_factor": 0.9656,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.7,
"bb_percent": 7.4,
"woba": 0.273,
"xwoba": 0.309,
"barrel_percent": 5.6,
"hard_hit_percent": 37.2,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 156,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 76.2,
"season_ERA": 3.287,
"season_WHIP": 1.07,
"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": 15.602,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7573,
"prior_weight": 0.2427
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663738",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 54,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 7.0,
"SO": 11.0,
"HR": 2.0,
"BF": 94.0,
"Pitches": 352.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 1.4,
"SO": 2.2,
"HR": 0.4,
"BF": 18.8,
"Pitches": 70.4
},
"rates": {
"ERA": 4.3676,
"WHIP": 1.1912,
"ER_per_IP": 0.48529,
"H_per_IP": 0.88235,
"BB_per_IP": 0.30882,
"SO_per_IP": 0.48529,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 32.2,
"ER": 18.0,
"R": 19.0,
"H": 30.0,
"BB": 11.0,
"SO": 18.0,
"HR": 4.0,
"BF": 137.0,
"Pitches": 492.0
},
"per_game": {
"IP": 3.1,
"ER": 1.8,
"R": 1.9,
"H": 3.0,
"BB": 1.1,
"SO": 1.8,
"HR": 0.4,
"BF": 13.7,
"Pitches": 49.2
},
"rates": {
"ERA": 4.9592,
"WHIP": 1.2551,
"ER_per_IP": 0.55102,
"H_per_IP": 0.91837,
"BB_per_IP": 0.33673,
"SO_per_IP": 0.55102,
"HR_per_IP": 0.12245
}
},
"season": {
"games": 54,
"totals": {
"IP": 76.2,
"ER": 28.0,
"R": 32.0,
"H": 59.0,
"BB": 23.0,
"SO": 52.0,
"HR": 6.0,
"BF": 312.0,
"Pitches": 1146.0
},
"per_game": {
"IP": 1.1,
"ER": 0.5185,
"R": 0.5926,
"H": 1.0926,
"BB": 0.4259,
"SO": 0.963,
"HR": 0.1111,
"BF": 5.7778,
"Pitches": 21.2222
},
"rates": {
"ERA": 3.287,
"WHIP": 1.0696,
"ER_per_IP": 0.36522,
"H_per_IP": 0.76957,
"BB_per_IP": 0.3,
"SO_per_IP": 0.67826,
"HR_per_IP": 0.07826
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.987,
"predicted_H": 3.641,
"predicted_BB": 1.342,
"predicted_SO": 2.6,
"predicted_HR": 0.448,
"predicted_ERA": 4.4145,
"predicted_WHIP": 1.2298
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4525,
"form_weight": 0.5475,
"form_reliability": 0.7573,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.602,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7573,
"prior_weight": 0.2427
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.987,
"final": 1.5403,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.641,
"final": 3.3509,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.342,
"final": 2.0923,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.6,
"final": 3.2336,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.448,
"final": 0.2453,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4145,
"final": 4.4145,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2298,
"final": 1.2298,
"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": 32.2,
"ER": 18,
"H": 30,
"BB": 11,
"SO": 18,
"HR": 4,
"ERA": 4.959183673469387,
"WHIP": 1.2551020408163263,
"K9": 4.959183673469387,
"HR9": 1.1020408163265305,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.0526934765461884,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.602,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7573,
"prior_weight": 0.2427
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663738",
"player_name": "Daniel Lynch IV",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 156,
"wins": 67,
"losses": 89,
"win_pct": 0.4295,
"runs_scored": 656.0,
"runs_allowed": 758.0,
"run_differential": -102.0,
"run_differential_per_game": -0.6538,
"avg_runs_scored": 4.2051,
"avg_runs_allowed": 4.859,
"offense_index": 0.9391,
"defense_index": 0.9216,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.2102
},
"opponent": {
"team": "CHW",
"games": 156,
"wins": 80,
"losses": 76,
"win_pct": 0.5128,
"runs_scored": 733.0,
"runs_allowed": 691.0,
"run_differential": 42.0,
"run_differential_per_game": 0.2692,
"avg_runs_scored": 4.6987,
"avg_runs_allowed": 4.4295,
"offense_index": 1.0493,
"defense_index": 1.0109,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.5,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0439
},
"edges": {
"quality_edge": -0.2541,
"offense_edge": -0.0609,
"opponent_offense_edge": 0.0493,
"defense_strength": -0.0784,
"opponent_defense_weakness": -0.0109,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9855,
"run_prevention": 1.0284,
"strikeout": 0.9884
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663738",
"profile": {
"available": true,
"pitcher_id": "663738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 287.0,
"k_percent": 16.7,
"bb_percent": 7.4,
"woba": 0.273,
"xwoba": 0.309,
"sweet_spot_percent": 30.3,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 37.2,
"avg_best_speed": 78.5637,
"avg_hyper_speed": 93.8722,
"whiff_percent": 22.9,
"swing_percent": 46.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.2964,
"command_and_miss": -0.3543,
"regression_edge": -1.0286,
"xwoba_edge": 0.0643,
"barrel_edge": 0.3556,
"hard_hit_edge": 0.1,
"whiff_edge": -0.3071,
"bb_edge": 0.4375,
"pitch_design_score": -0.0051
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 65,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 65,
"pitch_usage": 0.0,
"release_speed": 89.7672524619299,
"release_spin_rate": 2089.0752149624964,
"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": 65,
"pitch_usage": 0.0,
"release_speed": 89.7672524619299,
"release_spin_rate": 2089.0752149624964,
"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.7673,
"release_spin_rate": 2089.0752,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0051,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0361,
"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.0294,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 0.958,
"walk_factor": 0.965,
"homer_factor": 0.9656,
"woba_minus_xwoba": -0.036,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "663738",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0025,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0025,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.965,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9656,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.958,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 8",
"detail": "Actual minus predicted earned runs was +8; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260922_CHW@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_CIN@ATL | away | Brandon Williamson | Brandon Williamson | True | 4.0 | 6.0 | 6 | 5 | 0 | -5 | 6/3 | 1/0 | 1/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.564885496183207,
"WHIP": 1.534351145038168,
"IP": 43.2,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 4.762,
"recent_avg_IP": 4.4,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6409,
"sample_weight": 0.748,
"run_prevention_factor": 1.0545,
"strikeout_factor": 0.9711,
"walk_factor": 1.0696,
"homer_factor": 1.0927,
"regression_flag": "neutral",
"k_percent": 15.8,
"bb_percent": 13.8,
"woba": 0.355,
"xwoba": 0.378,
"barrel_percent": 9.7,
"hard_hit_percent": 41.8,
"whiff_percent": 24.4
},
"espn_rank": {
"rank": 690,
"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.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682227",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.2,
"ER": 12.0,
"R": 15.0,
"H": 18.0,
"BB": 11.0,
"SO": 16.0,
"HR": 4.0,
"BF": 84.0,
"Pitches": 303.0
},
"per_game": {
"IP": 3.2,
"ER": 2.4,
"R": 3.0,
"H": 3.6,
"BB": 2.2,
"SO": 3.2,
"HR": 0.8,
"BF": 16.8,
"Pitches": 60.6
},
"rates": {
"ERA": 5.7857,
"WHIP": 1.5536,
"ER_per_IP": 0.64286,
"H_per_IP": 0.96429,
"BB_per_IP": 0.58929,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 27.0,
"R": 30.0,
"H": 40.0,
"BB": 27.0,
"SO": 31.0,
"HR": 8.0,
"BF": 196.0,
"Pitches": 763.0
},
"per_game": {
"IP": 4.1,
"ER": 2.7,
"R": 3.0,
"H": 4.0,
"BB": 2.7,
"SO": 3.1,
"HR": 0.8,
"BF": 19.6,
"Pitches": 76.3
},
"rates": {
"ERA": 5.5649,
"WHIP": 1.5344,
"ER_per_IP": 0.61832,
"H_per_IP": 0.91603,
"BB_per_IP": 0.61832,
"SO_per_IP": 0.70992,
"HR_per_IP": 0.18321
}
},
"season": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 27.0,
"R": 30.0,
"H": 40.0,
"BB": 27.0,
"SO": 31.0,
"HR": 8.0,
"BF": 196.0,
"Pitches": 763.0
},
"per_game": {
"IP": 4.1,
"ER": 2.7,
"R": 3.0,
"H": 4.0,
"BB": 2.7,
"SO": 3.1,
"HR": 0.8,
"BF": 19.6,
"Pitches": 76.3
},
"rates": {
"ERA": 5.5649,
"WHIP": 1.5344,
"ER_per_IP": 0.61832,
"H_per_IP": 0.91603,
"BB_per_IP": 0.61832,
"SO_per_IP": 0.70992,
"HR_per_IP": 0.18321
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.481,
"predicted_H": 4.008,
"predicted_BB": 2.209,
"predicted_SO": 3.528,
"predicted_HR": 0.769,
"predicted_ERA": 5.3225,
"predicted_WHIP": 1.4823
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.481,
"final": 4.2082,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.008,
"final": 4.0041,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.209,
"final": 1.6156,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.528,
"final": 2.2872,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.769,
"final": 1.3732,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3225,
"final": 5.3225,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4823,
"final": 1.4823,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.2,
"ER": 27,
"H": 40,
"BB": 27,
"SO": 31,
"HR": 8,
"ERA": 5.564885496183208,
"WHIP": 1.5343511450381682,
"K9": 6.389312977099238,
"HR9": 1.6488549618320614,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 1.1278161592070393,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 6.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 1.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 6,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 1,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682227",
"player_name": "Brandon Williamson",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 6.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 156,
"wins": 72,
"losses": 84,
"win_pct": 0.4615,
"runs_scored": 642.0,
"runs_allowed": 805.0,
"run_differential": -163.0,
"run_differential_per_game": -1.0449,
"avg_runs_scored": 4.1154,
"avg_runs_allowed": 5.1603,
"offense_index": 0.9176,
"defense_index": 0.8691,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 7.2,
"run_differential": -41.0
},
"available": true,
"quality_score": -0.2309
},
"opponent": {
"team": "ATL",
"games": 156,
"wins": 92,
"losses": 64,
"win_pct": 0.5897,
"runs_scored": 722.0,
"runs_allowed": 602.0,
"run_differential": 120.0,
"run_differential_per_game": 0.7692,
"avg_runs_scored": 4.6282,
"avg_runs_allowed": 3.859,
"offense_index": 1.032,
"defense_index": 1.1622,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.2,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.2406
},
"edges": {
"quality_edge": -0.4715,
"offense_edge": -0.0824,
"opponent_offense_edge": 0.032,
"defense_strength": -0.1309,
"opponent_defense_weakness": -0.1622,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9759,
"run_prevention": 1.0418,
"strikeout": 0.9833
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682227",
"profile": {
"available": true,
"pitcher_id": "682227",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 187.0,
"k_percent": 15.8,
"bb_percent": 13.8,
"woba": 0.355,
"xwoba": 0.378,
"sweet_spot_percent": 36.6,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 41.8,
"avg_best_speed": 76.4551,
"avg_hyper_speed": 94.2242,
"whiff_percent": 24.4,
"swing_percent": 44.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -1.0864,
"command_and_miss": -0.6571,
"regression_edge": -0.6571,
"xwoba_edge": -1.9071,
"barrel_edge": -0.5556,
"hard_hit_edge": -0.5571,
"whiff_edge": -0.0929,
"bb_edge": -1.1625,
"pitch_design_score": -0.1483
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682227",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 87.20960880352149,
"release_spin_rate": 2285.3272132739307,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 87.20960880352149,
"release_spin_rate": 2285.3272132739307,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.2096,
"release_spin_rate": 2285.3272,
"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.1483,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0591,
"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.6409,
"sample_weight": 0.748,
"run_prevention_factor": 1.0545,
"strikeout_factor": 0.9711,
"walk_factor": 1.0696,
"homer_factor": 1.0927,
"woba_minus_xwoba": -0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "682227",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0408,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0408,
"adjusted": 5
},
"predicted_BB": {
"original": 4.0,
"factor": 1.0521,
"adjusted": 4
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0693,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9784,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 1,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260922_CIN@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"
}
} |
| 20260922 | 20260922_CIN@ATL | home | JR Ritchie | JR Ritchie | True | 4.2 | 5.0 | 1 | 2 | 1 | -1 | 2/4 | 2/3 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.026595744680852,
"WHIP": 1.4680851063829787,
"IP": 62.2,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 4.926,
"recent_avg_IP": 4.533,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5222,
"sample_weight": 1.0,
"run_prevention_factor": 1.0444,
"strikeout_factor": 0.9843,
"walk_factor": 1.091,
"homer_factor": 1.0939,
"regression_flag": "neutral",
"k_percent": 20.9,
"bb_percent": 13.7,
"woba": 0.344,
"xwoba": 0.349,
"barrel_percent": 9.7,
"hard_hit_percent": 40.9,
"whiff_percent": 23.3
},
"espn_rank": {
"rank": 596,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702275",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.2,
"ER": 12.0,
"R": 12.0,
"H": 16.0,
"BB": 10.0,
"SO": 16.0,
"HR": 4.0,
"BF": 78.0,
"Pitches": 314.0
},
"per_game": {
"IP": 3.2,
"ER": 2.4,
"R": 2.4,
"H": 3.2,
"BB": 2.0,
"SO": 3.2,
"HR": 0.8,
"BF": 15.6,
"Pitches": 62.8
},
"rates": {
"ERA": 6.1132,
"WHIP": 1.4717,
"ER_per_IP": 0.67925,
"H_per_IP": 0.90566,
"BB_per_IP": 0.56604,
"SO_per_IP": 0.90566,
"HR_per_IP": 0.22642
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 37.0,
"ER": 22.0,
"R": 23.0,
"H": 33.0,
"BB": 22.0,
"SO": 37.0,
"HR": 7.0,
"BF": 164.0,
"Pitches": 656.0
},
"per_game": {
"IP": 3.2,
"ER": 2.2,
"R": 2.3,
"H": 3.3,
"BB": 2.2,
"SO": 3.7,
"HR": 0.7,
"BF": 16.4,
"Pitches": 65.6
},
"rates": {
"ERA": 5.3514,
"WHIP": 1.4865,
"ER_per_IP": 0.59459,
"H_per_IP": 0.89189,
"BB_per_IP": 0.59459,
"SO_per_IP": 1.0,
"HR_per_IP": 0.18919
}
},
"season": {
"games": 15,
"totals": {
"IP": 62.2,
"ER": 35.0,
"R": 38.0,
"H": 54.0,
"BB": 38.0,
"SO": 58.0,
"HR": 11.0,
"BF": 278.0,
"Pitches": 1105.0
},
"per_game": {
"IP": 4.1,
"ER": 2.3333,
"R": 2.5333,
"H": 3.6,
"BB": 2.5333,
"SO": 3.8667,
"HR": 0.7333,
"BF": 18.5333,
"Pitches": 73.6667
},
"rates": {
"ERA": 5.0266,
"WHIP": 1.4681,
"ER_per_IP": 0.55851,
"H_per_IP": 0.8617,
"BB_per_IP": 0.60638,
"SO_per_IP": 0.92553,
"HR_per_IP": 0.17553
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.396,
"predicted_H": 3.672,
"predicted_BB": 2.137,
"predicted_SO": 3.781,
"predicted_HR": 0.762,
"predicted_ERA": 5.3692,
"predicted_WHIP": 1.4462
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.396,
"final": 2.2156,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.672,
"final": 2.9102,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.137,
"final": 2.0746,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.781,
"final": 5.2477,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.762,
"final": 0.4148,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3692,
"final": 5.3692,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4462,
"final": 1.4462,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 37.0,
"ER": 22,
"H": 33,
"BB": 22,
"SO": 37,
"HR": 7,
"ERA": 5.351351351351352,
"WHIP": 1.4864864864864864,
"K9": 9.0,
"HR9": 1.7027027027027026,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.1025969514496632,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702275",
"player_name": "JR Ritchie",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 156,
"wins": 92,
"losses": 64,
"win_pct": 0.5897,
"runs_scored": 722.0,
"runs_allowed": 602.0,
"run_differential": 120.0,
"run_differential_per_game": 0.7692,
"avg_runs_scored": 4.6282,
"avg_runs_allowed": 3.859,
"offense_index": 1.032,
"defense_index": 1.1622,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.2,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.2406
},
"opponent": {
"team": "CIN",
"games": 156,
"wins": 72,
"losses": 84,
"win_pct": 0.4615,
"runs_scored": 642.0,
"runs_allowed": 805.0,
"run_differential": -163.0,
"run_differential_per_game": -1.0449,
"avg_runs_scored": 4.1154,
"avg_runs_allowed": 5.1603,
"offense_index": 0.9176,
"defense_index": 0.8691,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 7.2,
"run_differential": -41.0
},
"available": true,
"quality_score": -0.2309
},
"edges": {
"quality_edge": 0.4715,
"offense_edge": 0.032,
"opponent_offense_edge": -0.0824,
"defense_strength": 0.1622,
"opponent_defense_weakness": 0.1309,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.027,
"run_prevention": 0.947,
"strikeout": 1.0207
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702275",
"profile": {
"available": true,
"pitcher_id": "702275",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 254.0,
"k_percent": 20.9,
"bb_percent": 13.7,
"woba": 0.344,
"xwoba": 0.349,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 40.9,
"avg_best_speed": 80.0658,
"avg_hyper_speed": 94.1006,
"whiff_percent": 23.3,
"swing_percent": 41.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.7235,
"command_and_miss": -0.3793,
"regression_edge": -0.1429,
"xwoba_edge": -1.0786,
"barrel_edge": -0.5556,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.25,
"bb_edge": -1.1375,
"pitch_design_score": -0.0512
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702275",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 53,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 53,
"pitch_usage": 0.0,
"release_speed": 88.94346012532931,
"release_spin_rate": 2338.3616406057945,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 53,
"pitch_usage": 0.0,
"release_speed": 88.94346012532931,
"release_spin_rate": 2338.3616406057945,
"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.9435,
"release_spin_rate": 2338.3616,
"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.0512,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3656,
"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.5222,
"sample_weight": 1.0,
"run_prevention_factor": 1.0444,
"strikeout_factor": 0.9843,
"walk_factor": 1.091,
"homer_factor": 1.0939,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "702275",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0444,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0444,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.091,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0939,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9843,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260922_CIN@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"
}
} |
| 20260922 | 20260922_CLE@BOS | away | Parker Messick | Parker Messick | True | 6.0 | 5.0 | -3 | 3 | 1 | -2 | 1/5 | 2/1 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5738317757009344,
"WHIP": 1.0373831775700935,
"IP": 178.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.944,
"recent_avg_IP": 5.867,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5736,
"sample_weight": 1.0,
"run_prevention_factor": 0.9512,
"strikeout_factor": 1.03,
"walk_factor": 0.949,
"homer_factor": 0.9065,
"regression_flag": "neutral",
"k_percent": 26.2,
"bb_percent": 6.6,
"woba": 0.27,
"xwoba": 0.273,
"barrel_percent": 5.1,
"hard_hit_percent": 33.8,
"whiff_percent": 26.0
},
"espn_rank": {
"rank": 6,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "800048",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 9.0,
"R": 9.0,
"H": 25.0,
"BB": 7.0,
"SO": 34.0,
"HR": 3.0,
"BF": 120.0,
"Pitches": 483.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 5.0,
"BB": 1.4,
"SO": 6.8,
"HR": 0.6,
"BF": 24.0,
"Pitches": 96.6
},
"rates": {
"ERA": 2.7614,
"WHIP": 1.0909,
"ER_per_IP": 0.30682,
"H_per_IP": 0.85227,
"BB_per_IP": 0.23864,
"SO_per_IP": 1.15909,
"HR_per_IP": 0.10227
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.2,
"ER": 16.0,
"R": 17.0,
"H": 50.0,
"BB": 11.0,
"SO": 70.0,
"HR": 6.0,
"BF": 244.0,
"Pitches": 965.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.7,
"H": 5.0,
"BB": 1.1,
"SO": 7.0,
"HR": 0.6,
"BF": 24.4,
"Pitches": 96.5
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.0055,
"ER_per_IP": 0.26374,
"H_per_IP": 0.82418,
"BB_per_IP": 0.18132,
"SO_per_IP": 1.15385,
"HR_per_IP": 0.0989
}
},
"season": {
"games": 30,
"totals": {
"IP": 178.1,
"ER": 51.0,
"R": 55.0,
"H": 138.0,
"BB": 47.0,
"SO": 186.0,
"HR": 17.0,
"BF": 711.0,
"Pitches": 2788.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.8333,
"H": 4.6,
"BB": 1.5667,
"SO": 6.2,
"HR": 0.5667,
"BF": 23.7,
"Pitches": 92.9333
},
"rates": {
"ERA": 2.5738,
"WHIP": 1.0374,
"ER_per_IP": 0.28598,
"H_per_IP": 0.77383,
"BB_per_IP": 0.26355,
"SO_per_IP": 1.04299,
"HR_per_IP": 0.09533
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.916,
"predicted_H": 5.092,
"predicted_BB": 1.472,
"predicted_SO": 6.636,
"predicted_HR": 0.64,
"predicted_ERA": 2.8741,
"predicted_WHIP": 1.094
}
},
"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.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.916,
"final": 2.3608,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 5.092,
"final": 3.4127,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.472,
"final": 1.6887,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.636,
"final": 6.375,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.64,
"final": 0.7877,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8741,
"final": 2.8741,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.094,
"final": 1.094,
"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": 16,
"H": 50,
"BB": 11,
"SO": 70,
"HR": 6,
"ERA": 2.3736263736263736,
"WHIP": 1.0054945054945055,
"K9": 10.384615384615383,
"HR9": 0.8901098901098901,
"games_pitched": 10,
"quality_starts": 7,
"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-16T00:00:00"
},
"recent_form_boost": 0.7555780919308038,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 156,
"wins": 81,
"losses": 75,
"win_pct": 0.5192,
"runs_scored": 649.0,
"runs_allowed": 647.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0128,
"avg_runs_scored": 4.1603,
"avg_runs_allowed": 4.1474,
"offense_index": 0.9276,
"defense_index": 1.0814,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.2,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.0879
},
"opponent": {
"team": "BOS",
"games": 156,
"wins": 84,
"losses": 72,
"win_pct": 0.5385,
"runs_scored": 678.0,
"runs_allowed": 598.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5128,
"avg_runs_scored": 4.3462,
"avg_runs_allowed": 3.8333,
"offense_index": 0.9691,
"defense_index": 1.17,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.4,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0606
},
"edges": {
"quality_edge": 0.0273,
"offense_edge": -0.0724,
"opponent_offense_edge": -0.0309,
"defense_strength": 0.0814,
"opponent_defense_weakness": -0.17,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0048,
"run_prevention": 0.9856,
"strikeout": 1.0033
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 679.0,
"k_percent": 26.2,
"bb_percent": 6.6,
"woba": 0.27,
"xwoba": 0.273,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 33.8,
"avg_best_speed": 76.0732,
"avg_hyper_speed": 93.4321,
"whiff_percent": 26.0,
"swing_percent": 48.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.8283,
"command_and_miss": 0.4514,
"regression_edge": -0.0857,
"xwoba_edge": 1.0929,
"barrel_edge": 0.4667,
"hard_hit_edge": 0.5857,
"whiff_edge": 0.1357,
"bb_edge": 0.6375,
"pitch_design_score": 0.0121
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 90.07325626493206,
"release_spin_rate": 2104.9326510494875,
"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": 99,
"pitch_usage": 0.0,
"release_speed": 90.07325626493206,
"release_spin_rate": 2104.9326510494875,
"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.0733,
"release_spin_rate": 2104.9327,
"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.0121,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0863,
"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.5736,
"sample_weight": 1.0,
"run_prevention_factor": 0.9512,
"strikeout_factor": 1.03,
"walk_factor": 0.949,
"homer_factor": 0.9065,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800048",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9512,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9512,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.949,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9065,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.03,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260922_CLE@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_CLE@BOS | home | Payton Tolle | Payton Tolle | True | 5.2 | 5.2 | 0 | 3 | 2 | -1 | 4/8 | 2/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.020979020979021,
"WHIP": 1.06993006993007,
"IP": 143.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.72,
"recent_avg_IP": 5.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8185,
"sample_weight": 1.0,
"run_prevention_factor": 0.9304,
"strikeout_factor": 1.0574,
"walk_factor": 0.949,
"homer_factor": 0.9158,
"regression_flag": "neutral",
"k_percent": 28.9,
"bb_percent": 6.6,
"woba": 0.282,
"xwoba": 0.253,
"barrel_percent": 6.3,
"hard_hit_percent": 34.7,
"whiff_percent": 28.1
},
"espn_rank": {
"rank": 41,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "801139",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 10.0,
"R": 10.0,
"H": 24.0,
"BB": 7.0,
"SO": 38.0,
"HR": 2.0,
"BF": 114.0,
"Pitches": 478.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.8,
"BB": 1.4,
"SO": 7.6,
"HR": 0.4,
"BF": 22.8,
"Pitches": 95.6
},
"rates": {
"ERA": 3.2143,
"WHIP": 1.1071,
"ER_per_IP": 0.35714,
"H_per_IP": 0.85714,
"BB_per_IP": 0.25,
"SO_per_IP": 1.35714,
"HR_per_IP": 0.07143
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 19.0,
"R": 19.0,
"H": 50.0,
"BB": 13.0,
"SO": 79.0,
"HR": 7.0,
"BF": 234.0,
"Pitches": 919.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 1.9,
"H": 5.0,
"BB": 1.3,
"SO": 7.9,
"HR": 0.7,
"BF": 23.4,
"Pitches": 91.9
},
"rates": {
"ERA": 2.8983,
"WHIP": 1.0678,
"ER_per_IP": 0.32203,
"H_per_IP": 0.84746,
"BB_per_IP": 0.22034,
"SO_per_IP": 1.33898,
"HR_per_IP": 0.11864
}
},
"season": {
"games": 25,
"totals": {
"IP": 143.0,
"ER": 48.0,
"R": 52.0,
"H": 115.0,
"BB": 38.0,
"SO": 166.0,
"HR": 15.0,
"BF": 575.0,
"Pitches": 2191.0
},
"per_game": {
"IP": 5.2,
"ER": 1.92,
"R": 2.08,
"H": 4.6,
"BB": 1.52,
"SO": 6.64,
"HR": 0.6,
"BF": 23.0,
"Pitches": 87.64
},
"rates": {
"ERA": 3.021,
"WHIP": 1.0699,
"ER_per_IP": 0.33566,
"H_per_IP": 0.8042,
"BB_per_IP": 0.26573,
"SO_per_IP": 1.16084,
"HR_per_IP": 0.1049
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.126,
"predicted_H": 4.992,
"predicted_BB": 1.527,
"predicted_SO": 7.2,
"predicted_HR": 0.598,
"predicted_ERA": 3.3191,
"predicted_WHIP": 1.131
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.126,
"final": 2.4935,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.992,
"final": 4.5749,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.527,
"final": 1.7259,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 7.2,
"final": 4.5933,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.598,
"final": 1.1874,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3191,
"final": 3.3191,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.131,
"final": 1.131,
"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": 19,
"H": 50,
"BB": 13,
"SO": 79,
"HR": 7,
"ERA": 2.8983050847457625,
"WHIP": 1.0677966101694916,
"K9": 12.05084745762712,
"HR9": 1.0677966101694916,
"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-13T00:00:00"
},
"recent_form_boost": 0.8161619995486097,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 7.0,
"delta": 6.0,
"percent_delta": 6.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 7.0,
"delta": 6.0,
"percent_delta": 6.0,
"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": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"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": {
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 156,
"wins": 84,
"losses": 72,
"win_pct": 0.5385,
"runs_scored": 678.0,
"runs_allowed": 598.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5128,
"avg_runs_scored": 4.3462,
"avg_runs_allowed": 3.8333,
"offense_index": 0.9691,
"defense_index": 1.17,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.4,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0606
},
"opponent": {
"team": "CLE",
"games": 156,
"wins": 81,
"losses": 75,
"win_pct": 0.5192,
"runs_scored": 649.0,
"runs_allowed": 647.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0128,
"avg_runs_scored": 4.1603,
"avg_runs_allowed": 4.1474,
"offense_index": 0.9276,
"defense_index": 1.0814,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.2,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.0879
},
"edges": {
"quality_edge": -0.0273,
"offense_edge": -0.0309,
"opponent_offense_edge": -0.0724,
"defense_strength": 0.17,
"opponent_defense_weakness": -0.0814,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0069,
"run_prevention": 0.9728,
"strikeout": 1.005
},
"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": 546.0,
"k_percent": 28.9,
"bb_percent": 6.6,
"woba": 0.282,
"xwoba": 0.253,
"sweet_spot_percent": 30.9,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 34.7,
"avg_best_speed": 76.2876,
"avg_hyper_speed": 93.548,
"whiff_percent": 28.1,
"swing_percent": 55.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.9502,
"command_and_miss": 0.73,
"regression_edge": 0.8286,
"xwoba_edge": 1.6643,
"barrel_edge": 0.2,
"hard_hit_edge": 0.4571,
"whiff_edge": 0.4357,
"bb_edge": 0.6375,
"pitch_design_score": 0.1723
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "801139",
"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": 92.93396318599987,
"release_spin_rate": 2262.3895801288368,
"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": 92.93396318599987,
"release_spin_rate": 2262.3895801288368,
"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.934,
"release_spin_rate": 2262.3896,
"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.1723,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2306,
"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.8185,
"sample_weight": 1.0,
"run_prevention_factor": 0.9304,
"strikeout_factor": 1.0574,
"walk_factor": 0.949,
"homer_factor": 0.9158,
"woba_minus_xwoba": 0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "801139",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9304,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9304,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.949,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9158,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0574,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "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."
}
],
"provenance": {
"prediction": "output/games/20260922_CLE@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_HOU@SEA | away | Cristian Javier | Cristian Javier | True | 5.0 | 2.0 | -9 | 3 | 0 | -3 | 6/1 | 3/2 | 2/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.311475409836065,
"WHIP": 1.459016393442623,
"IP": 61.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.867,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1999,
"sample_weight": 0.972,
"run_prevention_factor": 1.017,
"strikeout_factor": 1.0203,
"walk_factor": 1.0107,
"homer_factor": 1.0205,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 9.7,
"woba": 0.343,
"xwoba": 0.332,
"barrel_percent": 8.8,
"hard_hit_percent": 33.5,
"whiff_percent": 29.3
},
"espn_rank": {
"rank": 548,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "664299",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 10.0,
"R": 10.0,
"H": 19.0,
"BB": 9.0,
"SO": 27.0,
"HR": 3.0,
"BF": 100.0,
"Pitches": 411.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 3.8,
"BB": 1.8,
"SO": 5.4,
"HR": 0.6,
"BF": 20.0,
"Pitches": 82.2
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.1351,
"ER_per_IP": 0.40541,
"H_per_IP": 0.77027,
"BB_per_IP": 0.36486,
"SO_per_IP": 1.09459,
"HR_per_IP": 0.12162
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.2,
"ER": 19.0,
"R": 19.0,
"H": 43.0,
"BB": 11.0,
"SO": 45.0,
"HR": 7.0,
"BF": 188.0,
"Pitches": 759.0
},
"per_game": {
"IP": 4.2,
"ER": 1.9,
"R": 1.9,
"H": 4.3,
"BB": 1.1,
"SO": 4.5,
"HR": 0.7,
"BF": 18.8,
"Pitches": 75.9
},
"rates": {
"ERA": 3.7445,
"WHIP": 1.1825,
"ER_per_IP": 0.41606,
"H_per_IP": 0.94161,
"BB_per_IP": 0.24088,
"SO_per_IP": 0.9854,
"HR_per_IP": 0.15328
}
},
"season": {
"games": 16,
"totals": {
"IP": 61.0,
"ER": 36.0,
"R": 36.0,
"H": 63.0,
"BB": 26.0,
"SO": 57.0,
"HR": 10.0,
"BF": 267.0,
"Pitches": 1064.0
},
"per_game": {
"IP": 3.2,
"ER": 2.25,
"R": 2.25,
"H": 3.9375,
"BB": 1.625,
"SO": 3.5625,
"HR": 0.625,
"BF": 16.6875,
"Pitches": 66.5
},
"rates": {
"ERA": 5.3115,
"WHIP": 1.459,
"ER_per_IP": 0.59016,
"H_per_IP": 1.03279,
"BB_per_IP": 0.42623,
"SO_per_IP": 0.93443,
"HR_per_IP": 0.16393
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.135,
"predicted_H": 4.194,
"predicted_BB": 1.591,
"predicted_SO": 4.646,
"predicted_HR": 0.662,
"predicted_ERA": 4.1515,
"predicted_WHIP": 1.2498
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.135,
"final": 2.5248,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.194,
"final": 5.0078,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.591,
"final": 2.2259,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.646,
"final": 3.4537,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.662,
"final": 0.8143,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1515,
"final": 4.1515,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2498,
"final": 1.2498,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.2,
"ER": 19,
"H": 43,
"BB": 11,
"SO": 45,
"HR": 7,
"ERA": 3.7445255474452557,
"WHIP": 1.1824817518248176,
"K9": 8.868613138686133,
"HR9": 1.3795620437956204,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9142289301436859,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664299",
"player_name": "Cristian Javier",
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 156,
"wins": 77,
"losses": 79,
"win_pct": 0.4936,
"runs_scored": 688.0,
"runs_allowed": 747.0,
"run_differential": -59.0,
"run_differential_per_game": -0.3782,
"avg_runs_scored": 4.4103,
"avg_runs_allowed": 4.7885,
"offense_index": 0.9844,
"defense_index": 0.9356,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.6,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1219
},
"opponent": {
"team": "SEA",
"games": 156,
"wins": 73,
"losses": 83,
"win_pct": 0.4679,
"runs_scored": 634.0,
"runs_allowed": 690.0,
"run_differential": -56.0,
"run_differential_per_game": -0.359,
"avg_runs_scored": 4.0641,
"avg_runs_allowed": 4.4231,
"offense_index": 0.9071,
"defense_index": 1.0129,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.8,
"run_differential": 19.0
},
"available": true,
"quality_score": -0.0714
},
"edges": {
"quality_edge": -0.0505,
"offense_edge": -0.0156,
"opponent_offense_edge": -0.0929,
"defense_strength": -0.0644,
"opponent_defense_weakness": -0.0129,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9998,
"run_prevention": 0.9941,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664299",
"profile": {
"available": true,
"pitcher_id": "664299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 243.0,
"k_percent": 21.3,
"bb_percent": 9.7,
"woba": 0.343,
"xwoba": 0.332,
"sweet_spot_percent": 40.1,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 33.5,
"avg_best_speed": 79.3767,
"avg_hyper_speed": 93.7294,
"whiff_percent": 29.3,
"swing_percent": 51.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.4799,
"command_and_miss": 0.1464,
"regression_edge": 0.3143,
"xwoba_edge": -0.5929,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.6286,
"whiff_edge": 0.6071,
"bb_edge": -0.1375,
"pitch_design_score": -0.0808
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 88.4152422034201,
"release_spin_rate": 2322.226121767922,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 88.4152422034201,
"release_spin_rate": 2322.226121767922,
"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.4152,
"release_spin_rate": 2322.2261,
"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.0808,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5769,
"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.1999,
"sample_weight": 0.972,
"run_prevention_factor": 1.017,
"strikeout_factor": 1.0203,
"walk_factor": 1.0107,
"homer_factor": 1.0205,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "664299",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0165,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0165,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0104,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0199,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0197,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260922_HOU@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_HOU@SEA | home | Logan Gilbert | Logan Gilbert | True | 5.2 | 4.0 | -5 | 3 | 4 | 1 | 6/10 | 1/2 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.691011235955056,
"WHIP": 1.0617977528089888,
"IP": 178.0,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.933,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2422,
"sample_weight": 1.0,
"run_prevention_factor": 0.9794,
"strikeout_factor": 1.0614,
"walk_factor": 0.947,
"homer_factor": 1.0545,
"regression_flag": "neutral",
"k_percent": 27.2,
"bb_percent": 6.5,
"woba": 0.297,
"xwoba": 0.294,
"barrel_percent": 10.1,
"hard_hit_percent": 41.0,
"whiff_percent": 30.5
},
"espn_rank": {
"rank": 29,
"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": "669302",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 17.0,
"R": 17.0,
"H": 28.0,
"BB": 9.0,
"SO": 37.0,
"HR": 8.0,
"BF": 119.0,
"Pitches": 484.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.4,
"H": 5.6,
"BB": 1.8,
"SO": 7.4,
"HR": 1.6,
"BF": 23.8,
"Pitches": 96.8
},
"rates": {
"ERA": 5.5301,
"WHIP": 1.3373,
"ER_per_IP": 0.61446,
"H_per_IP": 1.01205,
"BB_per_IP": 0.3253,
"SO_per_IP": 1.33735,
"HR_per_IP": 0.28916
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 28.0,
"R": 28.0,
"H": 50.0,
"BB": 21.0,
"SO": 65.0,
"HR": 13.0,
"BF": 241.0,
"Pitches": 963.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 5.0,
"BB": 2.1,
"SO": 6.5,
"HR": 1.3,
"BF": 24.1,
"Pitches": 96.3
},
"rates": {
"ERA": 4.3448,
"WHIP": 1.2241,
"ER_per_IP": 0.48276,
"H_per_IP": 0.86207,
"BB_per_IP": 0.36207,
"SO_per_IP": 1.12069,
"HR_per_IP": 0.22414
}
},
"season": {
"games": 30,
"totals": {
"IP": 178.0,
"ER": 73.0,
"R": 73.0,
"H": 143.0,
"BB": 46.0,
"SO": 194.0,
"HR": 28.0,
"BF": 713.0,
"Pitches": 2841.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4333,
"R": 2.4333,
"H": 4.7667,
"BB": 1.5333,
"SO": 6.4667,
"HR": 0.9333,
"BF": 23.7667,
"Pitches": 94.7
},
"rates": {
"ERA": 3.691,
"WHIP": 1.0618,
"ER_per_IP": 0.41011,
"H_per_IP": 0.80337,
"BB_per_IP": 0.25843,
"SO_per_IP": 1.08989,
"HR_per_IP": 0.1573
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.005,
"predicted_H": 5.305,
"predicted_BB": 1.901,
"predicted_SO": 6.713,
"predicted_HR": 1.299,
"predicted_ERA": 4.7248,
"predicted_WHIP": 1.2588
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.005,
"final": 3.0029,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.305,
"final": 5.5902,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.901,
"final": 1.5313,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.713,
"final": 4.7789,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.299,
"final": 1.5867,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7248,
"final": 4.7248,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2588,
"final": 1.2588,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 28,
"H": 50,
"BB": 21,
"SO": 65,
"HR": 13,
"ERA": 4.344827586206897,
"WHIP": 1.2241379310344827,
"K9": 10.086206896551724,
"HR9": 2.0172413793103448,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 0.9828043139846121,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"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": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669302",
"player_name": "Logan Gilbert",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 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": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 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": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"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": {
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 156,
"wins": 73,
"losses": 83,
"win_pct": 0.4679,
"runs_scored": 634.0,
"runs_allowed": 690.0,
"run_differential": -56.0,
"run_differential_per_game": -0.359,
"avg_runs_scored": 4.0641,
"avg_runs_allowed": 4.4231,
"offense_index": 0.9071,
"defense_index": 1.0129,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.8,
"run_differential": 19.0
},
"available": true,
"quality_score": -0.0714
},
"opponent": {
"team": "HOU",
"games": 156,
"wins": 77,
"losses": 79,
"win_pct": 0.4936,
"runs_scored": 688.0,
"runs_allowed": 747.0,
"run_differential": -59.0,
"run_differential_per_game": -0.3782,
"avg_runs_scored": 4.4103,
"avg_runs_allowed": 4.7885,
"offense_index": 0.9844,
"defense_index": 0.9356,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.6,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1219
},
"edges": {
"quality_edge": 0.0505,
"offense_edge": -0.0929,
"opponent_offense_edge": -0.0156,
"defense_strength": 0.0129,
"opponent_defense_weakness": 0.0644,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.003,
"run_prevention": 0.9937,
"strikeout": 1.0028
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669302",
"profile": {
"available": true,
"pitcher_id": "669302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 680.0,
"k_percent": 27.2,
"bb_percent": 6.5,
"woba": 0.297,
"xwoba": 0.294,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 41.0,
"avg_best_speed": 79.0526,
"avg_hyper_speed": 94.3205,
"whiff_percent": 30.5,
"swing_percent": 50.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.0723,
"command_and_miss": 0.7457,
"regression_edge": 0.0857,
"xwoba_edge": 0.4929,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.4429,
"whiff_edge": 0.7786,
"bb_edge": 0.6625,
"pitch_design_score": -0.0096
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68670804198848,
"release_spin_rate": 1934.7185998494679,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68670804198848,
"release_spin_rate": 1934.7185998494679,
"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.6867,
"release_spin_rate": 1934.7186,
"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.0096,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0683,
"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.2422,
"sample_weight": 1.0,
"run_prevention_factor": 0.9794,
"strikeout_factor": 1.0614,
"walk_factor": 0.947,
"homer_factor": 1.0545,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669302",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9794,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9794,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.947,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0545,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0614,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 25,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260922_HOU@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_LAA@OAK | away | Yusei Kikuchi | Yusei Kikuchi | True | 5.0 | 5.1 | 1 | 4 | 2 | -2 | 5/7 | 2/1 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.023255813953488,
"WHIP": 1.5523255813953487,
"IP": 57.1,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 4.778,
"recent_avg_IP": 5.267,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3402,
"sample_weight": 0.944,
"run_prevention_factor": 1.0289,
"strikeout_factor": 1.0024,
"walk_factor": 1.0312,
"homer_factor": 1.0949,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 10.8,
"woba": 0.347,
"xwoba": 0.339,
"barrel_percent": 9.3,
"hard_hit_percent": 44.8,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 319,
"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": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "579328",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 12.0,
"R": 13.0,
"H": 26.0,
"BB": 14.0,
"SO": 25.0,
"HR": 4.0,
"BF": 118.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.6,
"H": 5.2,
"BB": 2.8,
"SO": 5.0,
"HR": 0.8,
"BF": 23.6,
"Pitches": 91.4
},
"rates": {
"ERA": 4.1013,
"WHIP": 1.519,
"ER_per_IP": 0.4557,
"H_per_IP": 0.98734,
"BB_per_IP": 0.53165,
"SO_per_IP": 0.94937,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 25.0,
"R": 26.0,
"H": 47.0,
"BB": 23.0,
"SO": 50.0,
"HR": 6.0,
"BF": 212.0,
"Pitches": 847.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5,
"R": 2.6,
"H": 4.7,
"BB": 2.3,
"SO": 5.0,
"HR": 0.6,
"BF": 21.2,
"Pitches": 84.7
},
"rates": {
"ERA": 4.7203,
"WHIP": 1.4685,
"ER_per_IP": 0.52448,
"H_per_IP": 0.98601,
"BB_per_IP": 0.48252,
"SO_per_IP": 1.04895,
"HR_per_IP": 0.12587
}
},
"season": {
"games": 12,
"totals": {
"IP": 57.1,
"ER": 32.0,
"R": 33.0,
"H": 61.0,
"BB": 28.0,
"SO": 58.0,
"HR": 7.0,
"BF": 260.0,
"Pitches": 1024.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6667,
"R": 2.75,
"H": 5.0833,
"BB": 2.3333,
"SO": 4.8333,
"HR": 0.5833,
"BF": 21.6667,
"Pitches": 85.3333
},
"rates": {
"ERA": 5.0233,
"WHIP": 1.5523,
"ER_per_IP": 0.55814,
"H_per_IP": 1.06395,
"BB_per_IP": 0.48837,
"SO_per_IP": 1.01163,
"HR_per_IP": 0.12209
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.504,
"predicted_H": 4.956,
"predicted_BB": 2.327,
"predicted_SO": 4.874,
"predicted_HR": 0.699,
"predicted_ERA": 4.5279,
"predicted_WHIP": 1.4634
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4743,
"form_weight": 0.5257,
"form_reliability": 0.7059,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.504,
"final": 3.2135,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.956,
"final": 4.9769,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.327,
"final": 2.1719,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.874,
"final": 5.408,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.699,
"final": 0.3675,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5279,
"final": 4.5279,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4634,
"final": 1.4634,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 25,
"H": 47,
"BB": 23,
"SO": 50,
"HR": 6,
"ERA": 4.720279720279721,
"WHIP": 1.4685314685314685,
"K9": 9.440559440559442,
"HR9": 1.132867132867133,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.0311525175052294,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "579328",
"player_name": "Yusei Kikuchi",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 156,
"wins": 60,
"losses": 96,
"win_pct": 0.3846,
"runs_scored": 625.0,
"runs_allowed": 712.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5577,
"avg_runs_scored": 4.0064,
"avg_runs_allowed": 4.5641,
"offense_index": 0.8932,
"defense_index": 0.9827,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.8,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.2015
},
"opponent": {
"team": "OAK",
"games": 156,
"wins": 61,
"losses": 95,
"win_pct": 0.391,
"runs_scored": 670.0,
"runs_allowed": 893.0,
"run_differential": -223.0,
"run_differential_per_game": -1.4295,
"avg_runs_scored": 4.2949,
"avg_runs_allowed": 5.7244,
"offense_index": 0.9575,
"defense_index": 0.7836,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 6.5,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.3379
},
"edges": {
"quality_edge": 0.1364,
"offense_edge": -0.1068,
"opponent_offense_edge": -0.0425,
"defense_strength": -0.0173,
"opponent_defense_weakness": 0.2164,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0066,
"run_prevention": 0.9881,
"strikeout": 1.0075
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "579328",
"profile": {
"available": true,
"pitcher_id": "579328",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 236.0,
"k_percent": 22.3,
"bb_percent": 10.8,
"woba": 0.347,
"xwoba": 0.339,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 44.8,
"avg_best_speed": 79.817,
"avg_hyper_speed": 95.4298,
"whiff_percent": 25.1,
"swing_percent": 48.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.6594,
"command_and_miss": -0.0543,
"regression_edge": 0.2286,
"xwoba_edge": -0.7929,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.9857,
"whiff_edge": 0.0071,
"bb_edge": -0.4125,
"pitch_design_score": 0.002
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "579328",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 78,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 89.89310008708637,
"release_spin_rate": 2218.1246452962064,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 89.89310008708637,
"release_spin_rate": 2218.1246452962064,
"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.8931,
"release_spin_rate": 2218.1246,
"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.002,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0143,
"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.3402,
"sample_weight": 0.944,
"run_prevention_factor": 1.0289,
"strikeout_factor": 1.0024,
"walk_factor": 1.0312,
"homer_factor": 1.0949,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "579328",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0273,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0273,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0295,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0896,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0023,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260922_LAA@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_LAA@OAK | home | Brady Basso | Brady Basso | True | 4.1 | 2.0 | -7 | 5 | 5 | 0 | 5/6 | 2/2 | 1/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.5,
"WHIP": 1.475,
"IP": 40.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 2.444,
"recent_avg_IP": 2.467,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0065,
"sample_weight": 0.64,
"run_prevention_factor": 0.9994,
"strikeout_factor": 0.9603,
"walk_factor": 0.9328,
"homer_factor": 0.9698,
"regression_flag": "positive_pitcher_regression",
"k_percent": 15.7,
"bb_percent": 3.9,
"woba": 0.349,
"xwoba": 0.304,
"barrel_percent": 5.6,
"hard_hit_percent": 35.7,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 263,
"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": 8.14,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6195,
"prior_weight": 0.3805
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669620",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 9.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 13.0,
"ER": 6.0,
"R": 6.0,
"H": 17.0,
"BB": 3.0,
"SO": 7.0,
"HR": 0.0,
"BF": 58.0,
"Pitches": 215.0
},
"per_game": {
"IP": 2.2,
"ER": 1.2,
"R": 1.2,
"H": 3.4,
"BB": 0.6,
"SO": 1.4,
"HR": 0.0,
"BF": 11.6,
"Pitches": 43.0
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.5385,
"ER_per_IP": 0.46154,
"H_per_IP": 1.30769,
"BB_per_IP": 0.23077,
"SO_per_IP": 0.53846,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 21.0,
"ER": 10.0,
"R": 11.0,
"H": 27.0,
"BB": 4.0,
"SO": 12.0,
"HR": 1.0,
"BF": 93.0,
"Pitches": 326.0
},
"per_game": {
"IP": 2.0,
"ER": 1.0,
"R": 1.1,
"H": 2.7,
"BB": 0.4,
"SO": 1.2,
"HR": 0.1,
"BF": 9.3,
"Pitches": 32.6
},
"rates": {
"ERA": 4.2857,
"WHIP": 1.4762,
"ER_per_IP": 0.47619,
"H_per_IP": 1.28571,
"BB_per_IP": 0.19048,
"SO_per_IP": 0.57143,
"HR_per_IP": 0.04762
}
},
"season": {
"games": 24,
"totals": {
"IP": 40.0,
"ER": 20.0,
"R": 21.0,
"H": 52.0,
"BB": 7.0,
"SO": 28.0,
"HR": 3.0,
"BF": 178.0,
"Pitches": 625.0
},
"per_game": {
"IP": 1.2,
"ER": 0.8333,
"R": 0.875,
"H": 2.1667,
"BB": 0.2917,
"SO": 1.1667,
"HR": 0.125,
"BF": 7.4167,
"Pitches": 26.0417
},
"rates": {
"ERA": 4.5,
"WHIP": 1.475,
"ER_per_IP": 0.5,
"H_per_IP": 1.3,
"BB_per_IP": 0.175,
"SO_per_IP": 0.7,
"HR_per_IP": 0.075
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.346,
"predicted_H": 5.661,
"predicted_BB": 1.3,
"predicted_SO": 3.45,
"predicted_HR": 0.367,
"predicted_ERA": 4.3909,
"predicted_WHIP": 1.4478
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5108,
"form_weight": 0.4892,
"form_reliability": 0.6195,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.14,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6195,
"prior_weight": 0.3805
},
"applied_metrics": {
"predicted_IP": {
"model": 9.0,
"form": 4.2,
"final": 7.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.346,
"final": 3.7016,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.661,
"final": 5.3234,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.3,
"final": 1.6575,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.45,
"final": 2.1986,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.367,
"final": 1.2011,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3909,
"final": 4.3909,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4478,
"final": 1.4478,
"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": 21.0,
"ER": 10,
"H": 27,
"BB": 4,
"SO": 12,
"HR": 1,
"ERA": 4.285714285714286,
"WHIP": 1.4761904761904763,
"K9": 5.142857142857143,
"HR9": 0.42857142857142855,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9878125015624601,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 9.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.14,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6195,
"prior_weight": 0.3805
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 5,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669620",
"player_name": "Brady Basso",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 9.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 9.0,
"after": 4.1,
"delta": -4.9,
"percent_delta": -0.5444,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 9.0,
"after": 4.1,
"delta": -4.9,
"percent_delta": -0.5444,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 5.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 9.0,
"after": 4.1,
"delta": -4.9,
"percent_delta": -0.5444,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 9.0,
"after": 4.1,
"delta": -4.9,
"percent_delta": -0.5444,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 156,
"wins": 61,
"losses": 95,
"win_pct": 0.391,
"runs_scored": 670.0,
"runs_allowed": 893.0,
"run_differential": -223.0,
"run_differential_per_game": -1.4295,
"avg_runs_scored": 4.2949,
"avg_runs_allowed": 5.7244,
"offense_index": 0.9575,
"defense_index": 0.7836,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 6.5,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.3379
},
"opponent": {
"team": "LAA",
"games": 156,
"wins": 60,
"losses": 96,
"win_pct": 0.3846,
"runs_scored": 625.0,
"runs_allowed": 712.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5577,
"avg_runs_scored": 4.0064,
"avg_runs_allowed": 4.5641,
"offense_index": 0.8932,
"defense_index": 0.9827,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.8,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.2015
},
"edges": {
"quality_edge": -0.1364,
"offense_edge": -0.0425,
"opponent_offense_edge": -0.1068,
"defense_strength": -0.2164,
"opponent_defense_weakness": 0.0173,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9923,
"run_prevention": 1.0114,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669620",
"profile": {
"available": true,
"pitcher_id": "669620",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 160.0,
"k_percent": 15.7,
"bb_percent": 3.9,
"woba": 0.349,
"xwoba": 0.304,
"sweet_spot_percent": 39.2,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 35.7,
"avg_best_speed": 76.761,
"avg_hyper_speed": 93.9876,
"whiff_percent": 20.4,
"swing_percent": 52.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.0235,
"command_and_miss": -0.3686,
"regression_edge": 1.2857,
"xwoba_edge": 0.2071,
"barrel_edge": 0.3556,
"hard_hit_edge": 0.3143,
"whiff_edge": -0.6643,
"bb_edge": 1.3125,
"pitch_design_score": -0.1176
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669620",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 36,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 36,
"pitch_usage": 0.0,
"release_speed": 87.75756117154422,
"release_spin_rate": 2227.8675789733616,
"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": 36,
"pitch_usage": 0.0,
"release_speed": 87.75756117154422,
"release_spin_rate": 2227.8675789733616,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.7576,
"release_spin_rate": 2227.8676,
"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.1176,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.84,
"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.0065,
"sample_weight": 0.64,
"run_prevention_factor": 0.9994,
"strikeout_factor": 0.9603,
"walk_factor": 0.9328,
"homer_factor": 0.9698,
"woba_minus_xwoba": 0.045,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "669620",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9996,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9996,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.957,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9807,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9746,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 78,
"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": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260922_LAA@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_MIA@CHC | away | Janson Junk | Janson Junk | True | 4.2 | 5.0 | 1 | 5 | 0 | -5 | 6/2 | 4/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.5,
"WHIP": 1.3421052631578947,
"IP": 114.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 4.913,
"recent_avg_IP": 4.067,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2872,
"sample_weight": 1.0,
"run_prevention_factor": 1.0244,
"strikeout_factor": 0.9094,
"walk_factor": 0.945,
"homer_factor": 1.0125,
"regression_flag": "neutral",
"k_percent": 16.0,
"bb_percent": 6.4,
"woba": 0.329,
"xwoba": 0.322,
"barrel_percent": 7.0,
"hard_hit_percent": 39.1,
"whiff_percent": 15.1
},
"espn_rank": {
"rank": 235,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676083",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 16.2,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 5.0,
"SO": 10.0,
"HR": 2.0,
"BF": 73.0,
"Pitches": 280.0
},
"per_game": {
"IP": 3.1,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 1.0,
"SO": 2.0,
"HR": 0.4,
"BF": 14.6,
"Pitches": 56.0
},
"rates": {
"ERA": 5.94,
"WHIP": 1.5,
"ER_per_IP": 0.66,
"H_per_IP": 1.2,
"BB_per_IP": 0.3,
"SO_per_IP": 0.6,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 40.1,
"ER": 17.0,
"R": 19.0,
"H": 42.0,
"BB": 11.0,
"SO": 21.0,
"HR": 3.0,
"BF": 171.0,
"Pitches": 644.0
},
"per_game": {
"IP": 4.0,
"ER": 1.7,
"R": 1.9,
"H": 4.2,
"BB": 1.1,
"SO": 2.1,
"HR": 0.3,
"BF": 17.1,
"Pitches": 64.4
},
"rates": {
"ERA": 3.7934,
"WHIP": 1.314,
"ER_per_IP": 0.42149,
"H_per_IP": 1.04132,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.52066,
"HR_per_IP": 0.07438
}
},
"season": {
"games": 24,
"totals": {
"IP": 114.0,
"ER": 57.0,
"R": 62.0,
"H": 122.0,
"BB": 31.0,
"SO": 78.0,
"HR": 14.0,
"BF": 487.0,
"Pitches": 1833.0
},
"per_game": {
"IP": 4.2,
"ER": 2.375,
"R": 2.5833,
"H": 5.0833,
"BB": 1.2917,
"SO": 3.25,
"HR": 0.5833,
"BF": 20.2917,
"Pitches": 76.375
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3421,
"ER_per_IP": 0.5,
"H_per_IP": 1.07018,
"BB_per_IP": 0.27193,
"SO_per_IP": 0.68421,
"HR_per_IP": 0.12281
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.142,
"predicted_H": 4.354,
"predicted_BB": 1.195,
"predicted_SO": 2.582,
"predicted_HR": 0.446,
"predicted_ERA": 4.847,
"predicted_WHIP": 1.3952
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.142,
"final": 3.3505,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.354,
"final": 5.05,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.195,
"final": 2.3811,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.582,
"final": 3.6044,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.446,
"final": 0.2574,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.847,
"final": 4.847,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3952,
"final": 1.3952,
"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": 40.1,
"ER": 17,
"H": 42,
"BB": 11,
"SO": 21,
"HR": 3,
"ERA": 3.7933884297520657,
"WHIP": 1.3140495867768593,
"K9": 4.68595041322314,
"HR9": 0.6694214876033058,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 0.923015200277003,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676083",
"player_name": "Janson Junk",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 156,
"wins": 76,
"losses": 80,
"win_pct": 0.4872,
"runs_scored": 692.0,
"runs_allowed": 695.0,
"run_differential": -3.0,
"run_differential_per_game": -0.0192,
"avg_runs_scored": 4.4359,
"avg_runs_allowed": 4.4551,
"offense_index": 0.9906,
"defense_index": 1.0051,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 6.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.0482
},
"opponent": {
"team": "CHC",
"games": 156,
"wins": 87,
"losses": 69,
"win_pct": 0.5577,
"runs_scored": 835.0,
"runs_allowed": 683.0,
"run_differential": 152.0,
"run_differential_per_game": 0.9744,
"avg_runs_scored": 5.3526,
"avg_runs_allowed": 4.3782,
"offense_index": 1.1954,
"defense_index": 1.0228,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 3.9,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.2037
},
"edges": {
"quality_edge": -0.2519,
"offense_edge": -0.0094,
"opponent_offense_edge": 0.1954,
"defense_strength": 0.0051,
"opponent_defense_weakness": -0.0228,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9823,
"run_prevention": 1.0433,
"strikeout": 0.9768
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676083",
"profile": {
"available": true,
"pitcher_id": "676083",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 448.0,
"k_percent": 16.0,
"bb_percent": 6.4,
"woba": 0.329,
"xwoba": 0.322,
"sweet_spot_percent": 30.3,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 39.1,
"avg_best_speed": 79.3958,
"avg_hyper_speed": 94.4423,
"whiff_percent": 15.1,
"swing_percent": 48.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1905,
"command_and_miss": -0.7393,
"regression_edge": 0.2,
"xwoba_edge": -0.3071,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.1714,
"whiff_edge": -1.4214,
"bb_edge": 0.6875,
"pitch_design_score": -0.1045
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 55,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 55,
"pitch_usage": 0.0,
"release_speed": 87.99217715516329,
"release_spin_rate": 2229.370088419328,
"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": 55,
"pitch_usage": 0.0,
"release_speed": 87.99217715516329,
"release_spin_rate": 2229.370088419328,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.9922,
"release_spin_rate": 2229.3701,
"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.1045,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7461,
"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.2872,
"sample_weight": 1.0,
"run_prevention_factor": 1.0244,
"strikeout_factor": 0.9094,
"walk_factor": 0.945,
"homer_factor": 1.0125,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676083",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0244,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0244,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.945,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0125,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9094,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 105,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
}
],
"provenance": {
"prediction": "output/games/20260922_MIA@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_MIA@CHC | home | Shota Imanaga | Shota Imanaga | True | 5.1 | 5.0 | -1 | 3 | 1 | -2 | 6/4 | 1/0 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.796039603960396,
"WHIP": 1.1049504950495048,
"IP": 168.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.611,
"recent_avg_IP": 5.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1972,
"sample_weight": 1.0,
"run_prevention_factor": 0.9832,
"strikeout_factor": 1.0391,
"walk_factor": 0.925,
"homer_factor": 1.0265,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 5.4,
"woba": 0.31,
"xwoba": 0.301,
"barrel_percent": 9.7,
"hard_hit_percent": 36.3,
"whiff_percent": 29.8
},
"espn_rank": {
"rank": 93,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "684007",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 11.0,
"R": 12.0,
"H": 25.0,
"BB": 5.0,
"SO": 24.0,
"HR": 5.0,
"BF": 105.0,
"Pitches": 451.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.4,
"H": 5.0,
"BB": 1.0,
"SO": 4.8,
"HR": 1.0,
"BF": 21.0,
"Pitches": 90.2
},
"rates": {
"ERA": 3.96,
"WHIP": 1.2,
"ER_per_IP": 0.44,
"H_per_IP": 1.0,
"BB_per_IP": 0.2,
"SO_per_IP": 0.96,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 21.0,
"R": 22.0,
"H": 49.0,
"BB": 9.0,
"SO": 55.0,
"HR": 12.0,
"BF": 219.0,
"Pitches": 907.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.2,
"H": 4.9,
"BB": 0.9,
"SO": 5.5,
"HR": 1.2,
"BF": 21.9,
"Pitches": 90.7
},
"rates": {
"ERA": 3.5437,
"WHIP": 1.0875,
"ER_per_IP": 0.39375,
"H_per_IP": 0.91875,
"BB_per_IP": 0.16875,
"SO_per_IP": 1.03125,
"HR_per_IP": 0.225
}
},
"season": {
"games": 30,
"totals": {
"IP": 168.1,
"ER": 71.0,
"R": 73.0,
"H": 149.0,
"BB": 37.0,
"SO": 164.0,
"HR": 34.0,
"BF": 683.0,
"Pitches": 2707.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3667,
"R": 2.4333,
"H": 4.9667,
"BB": 1.2333,
"SO": 5.4667,
"HR": 1.1333,
"BF": 22.7667,
"Pitches": 90.2333
},
"rates": {
"ERA": 3.796,
"WHIP": 1.105,
"ER_per_IP": 0.42178,
"H_per_IP": 0.88515,
"BB_per_IP": 0.2198,
"SO_per_IP": 0.97426,
"HR_per_IP": 0.20198
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.278,
"predicted_H": 5.015,
"predicted_BB": 1.153,
"predicted_SO": 5.16,
"predicted_HR": 1.055,
"predicted_ERA": 3.8969,
"predicted_WHIP": 1.1723
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.278,
"final": 2.9847,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.015,
"final": 5.4192,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.153,
"final": 1.0902,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.16,
"final": 4.2736,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 1.055,
"final": 1.8532,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8969,
"final": 3.8969,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1723,
"final": 1.1723,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 21,
"H": 49,
"BB": 9,
"SO": 55,
"HR": 12,
"ERA": 3.5437499999999997,
"WHIP": 1.0875,
"K9": 9.28125,
"HR9": 2.025,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.8892671372604741,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 3.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": 5.1,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "684007",
"player_name": "Shota Imanaga",
"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": 4.0,
"predicted_H": 6.0,
"predicted_HR": 3.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"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": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"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_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 156,
"wins": 87,
"losses": 69,
"win_pct": 0.5577,
"runs_scored": 835.0,
"runs_allowed": 683.0,
"run_differential": 152.0,
"run_differential_per_game": 0.9744,
"avg_runs_scored": 5.3526,
"avg_runs_allowed": 4.3782,
"offense_index": 1.1954,
"defense_index": 1.0228,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 3.9,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.2037
},
"opponent": {
"team": "MIA",
"games": 156,
"wins": 76,
"losses": 80,
"win_pct": 0.4872,
"runs_scored": 692.0,
"runs_allowed": 695.0,
"run_differential": -3.0,
"run_differential_per_game": -0.0192,
"avg_runs_scored": 4.4359,
"avg_runs_allowed": 4.4551,
"offense_index": 0.9906,
"defense_index": 1.0051,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 6.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.0482
},
"edges": {
"quality_edge": 0.2519,
"offense_edge": 0.1954,
"opponent_offense_edge": -0.0094,
"defense_strength": 0.0228,
"opponent_defense_weakness": -0.0051,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0111,
"run_prevention": 0.9836,
"strikeout": 1.0083
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "684007",
"profile": {
"available": true,
"pitcher_id": "684007",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 660.0,
"k_percent": 24.0,
"bb_percent": 5.4,
"woba": 0.31,
"xwoba": 0.301,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 36.3,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.7546,
"whiff_percent": 29.8,
"swing_percent": 51.6
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.074,
"command_and_miss": 0.56,
"regression_edge": 0.2571,
"xwoba_edge": 0.2929,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.2286,
"whiff_edge": 0.6786,
"bb_edge": 0.9375,
"pitch_design_score": -0.1949
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "684007",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 86.37721205669526,
"release_spin_rate": 2035.0429365724972,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 86.37721205669526,
"release_spin_rate": 2035.0429365724972,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.3772,
"release_spin_rate": 2035.0429,
"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.1949,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3921,
"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.1972,
"sample_weight": 1.0,
"run_prevention_factor": 0.9832,
"strikeout_factor": 1.0391,
"walk_factor": 0.925,
"homer_factor": 1.0265,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "684007",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9832,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9832,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.925,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0265,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0391,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260922_MIA@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_MIL@PHI | away | Dustin May | Dustin May | True | 4.2 | 2.0 | -8 | 2 | 2 | 0 | 2/1 | 2/2 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.606635071090047,
"WHIP": 1.3151658767772512,
"IP": 140.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.851,
"recent_avg_IP": 3.333,
"last_start_IP": 2.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1546,
"sample_weight": 1.0,
"run_prevention_factor": 1.0131,
"strikeout_factor": 0.9951,
"walk_factor": 0.973,
"homer_factor": 1.0505,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 7.8,
"woba": 0.315,
"xwoba": 0.322,
"barrel_percent": 7.5,
"hard_hit_percent": 44.2,
"whiff_percent": 23.2
},
"espn_rank": {
"rank": 278,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669160",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 16.2,
"ER": 9.0,
"R": 9.0,
"H": 19.0,
"BB": 5.0,
"SO": 19.0,
"HR": 3.0,
"BF": 76.0,
"Pitches": 308.0
},
"per_game": {
"IP": 3.1,
"ER": 1.8,
"R": 1.8,
"H": 3.8,
"BB": 1.0,
"SO": 3.8,
"HR": 0.6,
"BF": 15.2,
"Pitches": 61.6
},
"rates": {
"ERA": 4.86,
"WHIP": 1.44,
"ER_per_IP": 0.54,
"H_per_IP": 1.14,
"BB_per_IP": 0.3,
"SO_per_IP": 1.14,
"HR_per_IP": 0.18
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.2,
"ER": 20.0,
"R": 20.0,
"H": 41.0,
"BB": 15.0,
"SO": 42.0,
"HR": 5.0,
"BF": 185.0,
"Pitches": 713.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.0,
"H": 4.1,
"BB": 1.5,
"SO": 4.2,
"HR": 0.5,
"BF": 18.5,
"Pitches": 71.3
},
"rates": {
"ERA": 4.2188,
"WHIP": 1.3125,
"ER_per_IP": 0.46875,
"H_per_IP": 0.96094,
"BB_per_IP": 0.35156,
"SO_per_IP": 0.98438,
"HR_per_IP": 0.11719
}
},
"season": {
"games": 29,
"totals": {
"IP": 140.2,
"ER": 72.0,
"R": 75.0,
"H": 138.0,
"BB": 47.0,
"SO": 137.0,
"HR": 12.0,
"BF": 599.0,
"Pitches": 2305.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4828,
"R": 2.5862,
"H": 4.7586,
"BB": 1.6207,
"SO": 4.7241,
"HR": 0.4138,
"BF": 20.6552,
"Pitches": 79.4828
},
"rates": {
"ERA": 4.6066,
"WHIP": 1.3152,
"ER_per_IP": 0.51185,
"H_per_IP": 0.98104,
"BB_per_IP": 0.33412,
"SO_per_IP": 0.97393,
"HR_per_IP": 0.08531
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.095,
"predicted_H": 4.26,
"predicted_BB": 1.367,
"predicted_SO": 4.258,
"predicted_HR": 0.578,
"predicted_ERA": 4.5855,
"predicted_WHIP": 1.3684
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.095,
"final": 2.0558,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.26,
"final": 3.3285,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.367,
"final": 1.6279,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.258,
"final": 4.1517,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.578,
"final": 0.3398,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5855,
"final": 4.5855,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3684,
"final": 1.3684,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.2,
"ER": 20,
"H": 41,
"BB": 15,
"SO": 42,
"HR": 5,
"ERA": 4.218749999999999,
"WHIP": 1.3124999999999998,
"K9": 8.859374999999998,
"HR9": 1.0546874999999998,
"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-18T00:00:00"
},
"recent_form_boost": 0.9708296372604741,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 156,
"wins": 98,
"losses": 58,
"win_pct": 0.6282,
"runs_scored": 802.0,
"runs_allowed": 600.0,
"run_differential": 202.0,
"run_differential_per_game": 1.2949,
"avg_runs_scored": 5.141,
"avg_runs_allowed": 3.8462,
"offense_index": 1.1449,
"defense_index": 1.1675,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 3.6,
"run_differential": 32.0
},
"available": true,
"quality_score": 0.3726
},
"opponent": {
"team": "PHI",
"games": 156,
"wins": 86,
"losses": 70,
"win_pct": 0.5513,
"runs_scored": 697.0,
"runs_allowed": 668.0,
"run_differential": 29.0,
"run_differential_per_game": 0.1859,
"avg_runs_scored": 4.4679,
"avg_runs_allowed": 4.2821,
"offense_index": 0.995,
"defense_index": 1.0487,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.8,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.0314
},
"edges": {
"quality_edge": 0.3412,
"offense_edge": 0.1449,
"opponent_offense_edge": -0.005,
"defense_strength": 0.1675,
"opponent_defense_weakness": -0.0487,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0189,
"run_prevention": 0.9654,
"strikeout": 1.0106
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 581.0,
"k_percent": 22.9,
"bb_percent": 7.8,
"woba": 0.315,
"xwoba": 0.322,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 44.2,
"avg_best_speed": 79.1537,
"avg_hyper_speed": 94.6072,
"whiff_percent": 23.2,
"swing_percent": 47.8
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.2811,
"command_and_miss": 0.0393,
"regression_edge": -0.2,
"xwoba_edge": -0.3071,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.9,
"whiff_edge": -0.2643,
"bb_edge": 0.3375,
"pitch_design_score": 0.1573
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 60,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 60,
"pitch_usage": 0.0,
"release_speed": 92.66624874445156,
"release_spin_rate": 2536.673286155761,
"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": 60,
"pitch_usage": 0.0,
"release_speed": 92.66624874445156,
"release_spin_rate": 2536.673286155761,
"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.6662,
"release_spin_rate": 2536.6733,
"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.1573,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1235,
"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.1546,
"sample_weight": 1.0,
"run_prevention_factor": 1.0131,
"strikeout_factor": 0.9951,
"walk_factor": 0.973,
"homer_factor": 1.0505,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669160",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0131,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0131,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.973,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0505,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9951,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260922_MIL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_MIL@PHI | home | Zack Wheeler | Zack Wheeler | True | 6.0 | 5.2 | -1 | 2 | 3 | 1 | 5/5 | 3/1 | 7/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9933481152993346,
"WHIP": 1.057649667405765,
"IP": 150.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.782,
"recent_avg_IP": 6.0,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7042,
"sample_weight": 1.0,
"run_prevention_factor": 0.9401,
"strikeout_factor": 1.0769,
"walk_factor": 0.971,
"homer_factor": 0.9314,
"regression_flag": "neutral",
"k_percent": 29.5,
"bb_percent": 7.7,
"woba": 0.28,
"xwoba": 0.268,
"barrel_percent": 6.2,
"hard_hit_percent": 35.5,
"whiff_percent": 30.9
},
"espn_rank": {
"rank": 8,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "554430",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 11.0,
"R": 11.0,
"H": 25.0,
"BB": 13.0,
"SO": 33.0,
"HR": 5.0,
"BF": 125.0,
"Pitches": 507.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.2,
"H": 5.0,
"BB": 2.6,
"SO": 6.6,
"HR": 1.0,
"BF": 25.0,
"Pitches": 101.4
},
"rates": {
"ERA": 3.3,
"WHIP": 1.2667,
"ER_per_IP": 0.36667,
"H_per_IP": 0.83333,
"BB_per_IP": 0.43333,
"SO_per_IP": 1.1,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 26.0,
"R": 27.0,
"H": 47.0,
"BB": 24.0,
"SO": 60.0,
"HR": 9.0,
"BF": 219.0,
"Pitches": 905.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.7,
"H": 4.7,
"BB": 2.4,
"SO": 6.0,
"HR": 0.9,
"BF": 21.9,
"Pitches": 90.5
},
"rates": {
"ERA": 4.649,
"WHIP": 1.4106,
"ER_per_IP": 0.51656,
"H_per_IP": 0.93377,
"BB_per_IP": 0.47682,
"SO_per_IP": 1.19205,
"HR_per_IP": 0.17881
}
},
"season": {
"games": 26,
"totals": {
"IP": 150.1,
"ER": 50.0,
"R": 51.0,
"H": 113.0,
"BB": 46.0,
"SO": 177.0,
"HR": 20.0,
"BF": 599.0,
"Pitches": 2451.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9231,
"R": 1.9615,
"H": 4.3462,
"BB": 1.7692,
"SO": 6.8077,
"HR": 0.7692,
"BF": 23.0385,
"Pitches": 94.2692
},
"rates": {
"ERA": 2.9933,
"WHIP": 1.0576,
"ER_per_IP": 0.33259,
"H_per_IP": 0.75166,
"BB_per_IP": 0.30599,
"SO_per_IP": 1.17738,
"HR_per_IP": 0.13304
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.419,
"predicted_H": 4.932,
"predicted_BB": 2.348,
"predicted_SO": 6.294,
"predicted_HR": 0.914,
"predicted_ERA": 3.8525,
"predicted_WHIP": 1.2883
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.419,
"final": 3.4982,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.932,
"final": 4.9604,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.348,
"final": 2.6206,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.294,
"final": 6.5892,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.914,
"final": 0.5318,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8525,
"final": 3.8525,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2883,
"final": 1.2883,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 26,
"H": 47,
"BB": 24,
"SO": 60,
"HR": 9,
"ERA": 4.6490066225165565,
"WHIP": 1.4105960264900663,
"K9": 10.728476821192054,
"HR9": 1.6092715231788082,
"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-16T00:00:00"
},
"recent_form_boost": 1.0216859079558385,
"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": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "554430",
"player_name": "Zack Wheeler",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 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": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 156,
"wins": 86,
"losses": 70,
"win_pct": 0.5513,
"runs_scored": 697.0,
"runs_allowed": 668.0,
"run_differential": 29.0,
"run_differential_per_game": 0.1859,
"avg_runs_scored": 4.4679,
"avg_runs_allowed": 4.2821,
"offense_index": 0.995,
"defense_index": 1.0487,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.8,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.0314
},
"opponent": {
"team": "MIL",
"games": 156,
"wins": 98,
"losses": 58,
"win_pct": 0.6282,
"runs_scored": 802.0,
"runs_allowed": 600.0,
"run_differential": 202.0,
"run_differential_per_game": 1.2949,
"avg_runs_scored": 5.141,
"avg_runs_allowed": 3.8462,
"offense_index": 1.1449,
"defense_index": 1.1675,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 3.6,
"run_differential": 32.0
},
"available": true,
"quality_score": 0.3726
},
"edges": {
"quality_edge": -0.3412,
"offense_edge": -0.005,
"opponent_offense_edge": 0.1449,
"defense_strength": 0.0487,
"opponent_defense_weakness": -0.1675,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.982,
"run_prevention": 1.0354,
"strikeout": 0.9782
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "554430",
"profile": {
"available": true,
"pitcher_id": "554430",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 573.0,
"k_percent": 29.5,
"bb_percent": 7.7,
"woba": 0.28,
"xwoba": 0.268,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 35.5,
"avg_best_speed": 74.3749,
"avg_hyper_speed": 93.4483,
"whiff_percent": 30.9,
"swing_percent": 49.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.7977,
"command_and_miss": 0.8536,
"regression_edge": 0.3429,
"xwoba_edge": 1.2357,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.3429,
"whiff_edge": 0.8357,
"bb_edge": 0.3625,
"pitch_design_score": 0.0159
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "554430",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 102,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 102,
"pitch_usage": 0.0,
"release_speed": 90.1409528401879,
"release_spin_rate": 2371.990133014401,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 102,
"pitch_usage": 0.0,
"release_speed": 90.1409528401879,
"release_spin_rate": 2371.990133014401,
"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.141,
"release_spin_rate": 2371.9901,
"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.0159,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1134,
"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.7042,
"sample_weight": 1.0,
"run_prevention_factor": 0.9401,
"strikeout_factor": 1.0769,
"walk_factor": 0.971,
"homer_factor": 0.9314,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "554430",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9401,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9401,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.971,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9314,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0769,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "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/20260922_MIL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_MIN@SF | away | Taj Bradley | Taj Bradley | True | 6.0 | 6.0 | 0 | 3 | 1 | -2 | 2/3 | 3/3 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8123791102514506,
"WHIP": 1.230174081237911,
"IP": 172.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.744,
"recent_avg_IP": 6.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0003,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 1.046,
"walk_factor": 1.019,
"homer_factor": 1.0766,
"regression_flag": "neutral",
"k_percent": 27.5,
"bb_percent": 10.1,
"woba": 0.297,
"xwoba": 0.307,
"barrel_percent": 9.4,
"hard_hit_percent": 45.1,
"whiff_percent": 27.5
},
"espn_rank": {
"rank": 18,
"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": "671737",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 12.0,
"R": 12.0,
"H": 21.0,
"BB": 11.0,
"SO": 41.0,
"HR": 4.0,
"BF": 125.0,
"Pitches": 475.0
},
"per_game": {
"IP": 6.1,
"ER": 2.4,
"R": 2.4,
"H": 4.2,
"BB": 2.2,
"SO": 8.2,
"HR": 0.8,
"BF": 25.0,
"Pitches": 95.0
},
"rates": {
"ERA": 3.4105,
"WHIP": 1.0105,
"ER_per_IP": 0.37895,
"H_per_IP": 0.66316,
"BB_per_IP": 0.34737,
"SO_per_IP": 1.29474,
"HR_per_IP": 0.12632
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 26.0,
"R": 26.0,
"H": 45.0,
"BB": 27.0,
"SO": 70.0,
"HR": 6.0,
"BF": 243.0,
"Pitches": 945.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 4.5,
"BB": 2.7,
"SO": 7.0,
"HR": 0.6,
"BF": 24.3,
"Pitches": 94.5
},
"rates": {
"ERA": 4.0578,
"WHIP": 1.2486,
"ER_per_IP": 0.45087,
"H_per_IP": 0.78035,
"BB_per_IP": 0.46821,
"SO_per_IP": 1.21387,
"HR_per_IP": 0.10405
}
},
"season": {
"games": 30,
"totals": {
"IP": 172.1,
"ER": 73.0,
"R": 73.0,
"H": 139.0,
"BB": 73.0,
"SO": 199.0,
"HR": 23.0,
"BF": 724.0,
"Pitches": 2893.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4333,
"R": 2.4333,
"H": 4.6333,
"BB": 2.4333,
"SO": 6.6333,
"HR": 0.7667,
"BF": 24.1333,
"Pitches": 96.4333
},
"rates": {
"ERA": 3.8124,
"WHIP": 1.2302,
"ER_per_IP": 0.4236,
"H_per_IP": 0.80658,
"BB_per_IP": 0.4236,
"SO_per_IP": 1.15474,
"HR_per_IP": 0.13346
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.549,
"predicted_H": 4.588,
"predicted_BB": 2.393,
"predicted_SO": 7.139,
"predicted_HR": 0.741,
"predicted_ERA": 3.842,
"predicted_WHIP": 1.169
}
},
"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.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.549,
"final": 2.7341,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.588,
"final": 3.5259,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.393,
"final": 2.6421,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.139,
"final": 6.6716,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.741,
"final": 0.8473,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.842,
"final": 3.842,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.169,
"final": 1.169,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.2,
"ER": 26,
"H": 45,
"BB": 27,
"SO": 70,
"HR": 6,
"ERA": 4.057803468208093,
"WHIP": 1.2485549132947975,
"K9": 10.92485549132948,
"HR9": 0.9364161849710982,
"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-17T00:00:00"
},
"recent_form_boost": 0.9511245252662546,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671737",
"player_name": "Taj Bradley",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 714.0,
"runs_allowed": 781.0,
"run_differential": -67.0,
"run_differential_per_game": -0.4268,
"avg_runs_scored": 4.5478,
"avg_runs_allowed": 4.9745,
"offense_index": 1.0139,
"defense_index": 0.9017,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.8,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1171
},
"opponent": {
"team": "SF",
"games": 157,
"wins": 65,
"losses": 92,
"win_pct": 0.414,
"runs_scored": 661.0,
"runs_allowed": 742.0,
"run_differential": -81.0,
"run_differential_per_game": -0.5159,
"avg_runs_scored": 4.2102,
"avg_runs_allowed": 4.7261,
"offense_index": 0.9387,
"defense_index": 0.9491,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2064
},
"edges": {
"quality_edge": 0.0893,
"offense_edge": 0.0139,
"opponent_offense_edge": -0.0613,
"defense_strength": -0.0983,
"opponent_defense_weakness": 0.0509,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0031,
"run_prevention": 0.9956,
"strikeout": 1.0076
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671737",
"profile": {
"available": true,
"pitcher_id": "671737",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 696.0,
"k_percent": 27.5,
"bb_percent": 10.1,
"woba": 0.297,
"xwoba": 0.307,
"sweet_spot_percent": 39.5,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 45.1,
"avg_best_speed": 80.6995,
"avg_hyper_speed": 94.9365,
"whiff_percent": 27.5,
"swing_percent": 47.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1761,
"command_and_miss": 0.435,
"regression_edge": -0.2857,
"xwoba_edge": 0.1214,
"barrel_edge": -0.4889,
"hard_hit_edge": -1.0286,
"whiff_edge": 0.35,
"bb_edge": -0.2375,
"pitch_design_score": 0.1731
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671737",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 92.94823908729474,
"release_spin_rate": 2181.9905294160544,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 92.94823908729474,
"release_spin_rate": 2181.9905294160544,
"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.9482,
"release_spin_rate": 2181.9905,
"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.1731,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2363,
"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.0003,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 1.046,
"walk_factor": 1.019,
"homer_factor": 1.0766,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "671737",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.019,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0766,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.046,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260922_MIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_MIN@SF | home | Anthony Molina | Anthony Molina | True | 5.0 | 6.0 | 3 | 3 | 2 | -1 | 4/4 | 2/1 | 7/6 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 4.178571428571429,
"WHIP": 1.1071428571428572,
"IP": 28.0,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.667,
"recent_avg_IP": 4.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0259,
"sample_weight": 0.45,
"run_prevention_factor": 0.9978,
"strikeout_factor": 0.997,
"walk_factor": 0.9654,
"homer_factor": 0.9986,
"regression_flag": "neutral",
"k_percent": 21.9,
"bb_percent": 5.3,
"woba": 0.288,
"xwoba": 0.303,
"barrel_percent": 7.2,
"hard_hit_percent": 38.6,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 432,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 28.0,
"season_ERA": 4.179,
"season_WHIP": 1.107,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683627",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 10.0,
"R": 12.0,
"H": 19.0,
"BB": 5.0,
"SO": 23.0,
"HR": 2.0,
"BF": 93.0,
"Pitches": 368.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.4,
"H": 3.8,
"BB": 1.0,
"SO": 4.6,
"HR": 0.4,
"BF": 18.6,
"Pitches": 73.6
},
"rates": {
"ERA": 3.913,
"WHIP": 1.0435,
"ER_per_IP": 0.43478,
"H_per_IP": 0.82609,
"BB_per_IP": 0.21739,
"SO_per_IP": 1.0,
"HR_per_IP": 0.08696
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 28.0,
"ER": 13.0,
"R": 16.0,
"H": 25.0,
"BB": 6.0,
"SO": 25.0,
"HR": 3.0,
"BF": 114.0,
"Pitches": 456.0
},
"per_game": {
"IP": 3.1,
"ER": 1.625,
"R": 2.0,
"H": 3.125,
"BB": 0.75,
"SO": 3.125,
"HR": 0.375,
"BF": 14.25,
"Pitches": 57.0
},
"rates": {
"ERA": 4.1786,
"WHIP": 1.1071,
"ER_per_IP": 0.46429,
"H_per_IP": 0.89286,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.89286,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 8,
"totals": {
"IP": 28.0,
"ER": 13.0,
"R": 16.0,
"H": 25.0,
"BB": 6.0,
"SO": 25.0,
"HR": 3.0,
"BF": 114.0,
"Pitches": 456.0
},
"per_game": {
"IP": 3.1,
"ER": 1.625,
"R": 2.0,
"H": 3.125,
"BB": 0.75,
"SO": 3.125,
"HR": 0.375,
"BF": 14.25,
"Pitches": 57.0
},
"rates": {
"ERA": 4.1786,
"WHIP": 1.1071,
"ER_per_IP": 0.46429,
"H_per_IP": 0.89286,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.89286,
"HR_per_IP": 0.10714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.128,
"predicted_H": 4.074,
"predicted_BB": 1.259,
"predicted_SO": 4.33,
"predicted_HR": 0.52,
"predicted_ERA": 4.2251,
"predicted_WHIP": 1.1763
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.128,
"final": 2.5749,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.074,
"final": 4.0361,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.259,
"final": 1.6388,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.33,
"final": 5.1859,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.52,
"final": 0.2535,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2251,
"final": 4.2251,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1763,
"final": 1.1763,
"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": 28.0,
"ER": 13,
"H": 25,
"BB": 6,
"SO": 25,
"HR": 3,
"ERA": 4.178571428571429,
"WHIP": 1.1071428571428572,
"K9": 8.035714285714286,
"HR9": 0.9642857142857143,
"games_pitched": 8,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9640404778871128,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683627",
"player_name": "Anthony Molina",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 157,
"wins": 65,
"losses": 92,
"win_pct": 0.414,
"runs_scored": 661.0,
"runs_allowed": 742.0,
"run_differential": -81.0,
"run_differential_per_game": -0.5159,
"avg_runs_scored": 4.2102,
"avg_runs_allowed": 4.7261,
"offense_index": 0.9387,
"defense_index": 0.9491,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2064
},
"opponent": {
"team": "MIN",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 714.0,
"runs_allowed": 781.0,
"run_differential": -67.0,
"run_differential_per_game": -0.4268,
"avg_runs_scored": 4.5478,
"avg_runs_allowed": 4.9745,
"offense_index": 1.0139,
"defense_index": 0.9017,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.8,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1171
},
"edges": {
"quality_edge": -0.0893,
"offense_edge": -0.0613,
"opponent_offense_edge": 0.0139,
"defense_strength": -0.0509,
"opponent_defense_weakness": 0.0983,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9943,
"run_prevention": 1.0118,
"strikeout": 0.9962
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683627",
"profile": {
"available": true,
"pitcher_id": "683627",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 85.0,
"k_percent": 21.9,
"bb_percent": 5.3,
"woba": 0.288,
"xwoba": 0.303,
"sweet_spot_percent": 43.4,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 38.6,
"avg_best_speed": 76.6867,
"avg_hyper_speed": 93.5818,
"whiff_percent": 23.9,
"swing_percent": 51.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.1089,
"command_and_miss": 0.135,
"regression_edge": -0.4286,
"xwoba_edge": 0.2357,
"barrel_edge": 0.0,
"hard_hit_edge": -0.1,
"whiff_edge": -0.1643,
"bb_edge": 0.9625,
"pitch_design_score": 0.0534
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683627",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 90.81081078691422,
"release_spin_rate": 2116.6344098143236,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 90.81081078691422,
"release_spin_rate": 2116.6344098143236,
"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.8108,
"release_spin_rate": 2116.6344,
"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.0534,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3813,
"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.0259,
"sample_weight": 0.45,
"run_prevention_factor": 0.9978,
"strikeout_factor": 0.997,
"walk_factor": 0.9654,
"homer_factor": 0.9986,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683627",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.999,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.999,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9844,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9994,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9987,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260922_MIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_NYM@TEX | away | Sean Manaea | Sean Manaea | True | 5.2 | 6.0 | 1 | 2 | 2 | 0 | 3/3 | 4/2 | 6/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.737980769230769,
"WHIP": 1.3197115384615385,
"IP": 138.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.627,
"recent_avg_IP": 5.533,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3478,
"sample_weight": 1.0,
"run_prevention_factor": 1.0296,
"strikeout_factor": 0.9837,
"walk_factor": 0.953,
"homer_factor": 1.1084,
"regression_flag": "neutral",
"k_percent": 22.0,
"bb_percent": 6.8,
"woba": 0.348,
"xwoba": 0.337,
"barrel_percent": 10.9,
"hard_hit_percent": 41.5,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 553,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "640455",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 21.0,
"R": 21.0,
"H": 33.0,
"BB": 4.0,
"SO": 19.0,
"HR": 7.0,
"BF": 120.0,
"Pitches": 402.0
},
"per_game": {
"IP": 5.2,
"ER": 4.2,
"R": 4.2,
"H": 6.6,
"BB": 0.8,
"SO": 3.8,
"HR": 1.4,
"BF": 24.0,
"Pitches": 80.4
},
"rates": {
"ERA": 6.8313,
"WHIP": 1.3373,
"ER_per_IP": 0.75904,
"H_per_IP": 1.19277,
"BB_per_IP": 0.14458,
"SO_per_IP": 0.68675,
"HR_per_IP": 0.25301
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 31.0,
"R": 31.0,
"H": 60.0,
"BB": 15.0,
"SO": 51.0,
"HR": 11.0,
"BF": 248.0,
"Pitches": 859.0
},
"per_game": {
"IP": 6.0,
"ER": 3.1,
"R": 3.1,
"H": 6.0,
"BB": 1.5,
"SO": 5.1,
"HR": 1.1,
"BF": 24.8,
"Pitches": 85.9
},
"rates": {
"ERA": 4.7288,
"WHIP": 1.2712,
"ER_per_IP": 0.52542,
"H_per_IP": 1.01695,
"BB_per_IP": 0.25424,
"SO_per_IP": 0.86441,
"HR_per_IP": 0.18644
}
},
"season": {
"games": 31,
"totals": {
"IP": 138.2,
"ER": 73.0,
"R": 80.0,
"H": 142.0,
"BB": 41.0,
"SO": 132.0,
"HR": 23.0,
"BF": 601.0,
"Pitches": 2294.0
},
"per_game": {
"IP": 4.1,
"ER": 2.3548,
"R": 2.5806,
"H": 4.5806,
"BB": 1.3226,
"SO": 4.2581,
"HR": 0.7419,
"BF": 19.3871,
"Pitches": 74.0
},
"rates": {
"ERA": 4.738,
"WHIP": 1.3197,
"ER_per_IP": 0.52644,
"H_per_IP": 1.02404,
"BB_per_IP": 0.29567,
"SO_per_IP": 0.95192,
"HR_per_IP": 0.16587
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.4,
"predicted_H": 5.987,
"predicted_BB": 1.306,
"predicted_SO": 4.545,
"predicted_HR": 1.127,
"predicted_ERA": 5.5257,
"predicted_WHIP": 1.317
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.4,
"final": 2.4192,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.987,
"final": 4.7663,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.306,
"final": 2.407,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.545,
"final": 4.731,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.127,
"final": 0.6664,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5257,
"final": 5.5257,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.317,
"final": 1.317,
"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": 31,
"H": 60,
"BB": 15,
"SO": 51,
"HR": 11,
"ERA": 4.728813559322034,
"WHIP": 1.271186440677966,
"K9": 7.779661016949152,
"HR9": 1.6779661016949152,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 1.027178948701152,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "640455",
"player_name": "Sean Manaea",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 156,
"wins": 71,
"losses": 85,
"win_pct": 0.4551,
"runs_scored": 668.0,
"runs_allowed": 709.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2628,
"avg_runs_scored": 4.2821,
"avg_runs_allowed": 4.5449,
"offense_index": 0.9563,
"defense_index": 0.9852,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.2,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1404
},
"opponent": {
"team": "TEX",
"games": 156,
"wins": 78,
"losses": 78,
"win_pct": 0.5,
"runs_scored": 653.0,
"runs_allowed": 687.0,
"run_differential": -34.0,
"run_differential_per_game": -0.2179,
"avg_runs_scored": 4.1859,
"avg_runs_allowed": 4.4038,
"offense_index": 0.9348,
"defense_index": 1.0168,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.0,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0082
},
"edges": {
"quality_edge": -0.1486,
"offense_edge": -0.0437,
"opponent_offense_edge": -0.0652,
"defense_strength": -0.0148,
"opponent_defense_weakness": -0.0168,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9962,
"run_prevention": 0.9985,
"strikeout": 1.0008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "640455",
"profile": {
"available": true,
"pitcher_id": "640455",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 578.0,
"k_percent": 22.0,
"bb_percent": 6.8,
"woba": 0.348,
"xwoba": 0.337,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 10.9,
"hard_hit_percent": 41.5,
"avg_best_speed": 77.5935,
"avg_hyper_speed": 94.6278,
"whiff_percent": 22.1,
"swing_percent": 50.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.6299,
"command_and_miss": -0.0236,
"regression_edge": 0.3143,
"xwoba_edge": -0.7357,
"barrel_edge": -0.8222,
"hard_hit_edge": -0.5143,
"whiff_edge": -0.4214,
"bb_edge": 0.5875,
"pitch_design_score": -0.254
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 85.32242397875616,
"release_spin_rate": 2105.383936655872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 85.32242397875616,
"release_spin_rate": 2105.383936655872,
"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.3224,
"release_spin_rate": 2105.3839,
"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.254,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.814,
"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.3478,
"sample_weight": 1.0,
"run_prevention_factor": 1.0296,
"strikeout_factor": 0.9837,
"walk_factor": 0.953,
"homer_factor": 1.1084,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "640455",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0296,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0296,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.953,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1084,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9837,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260922_NYM@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_NYM@TEX | home | MacKenzie Gore | MacKenzie Gore | True | 4.2 | 5.0 | 1 | 2 | 1 | -1 | 3/4 | 1/1 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.672032193158954,
"WHIP": 1.352112676056338,
"IP": 165.2,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.177,
"recent_avg_IP": 4.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0126,
"sample_weight": 1.0,
"run_prevention_factor": 0.9989,
"strikeout_factor": 1.0146,
"walk_factor": 1.009,
"homer_factor": 1.0378,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 9.6,
"woba": 0.319,
"xwoba": 0.311,
"barrel_percent": 8.5,
"hard_hit_percent": 40.5,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 204,
"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": "669022",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.0,
"ER": 17.0,
"R": 17.0,
"H": 28.0,
"BB": 17.0,
"SO": 11.0,
"HR": 1.0,
"BF": 101.0,
"Pitches": 391.0
},
"per_game": {
"IP": 4.0,
"ER": 3.4,
"R": 3.4,
"H": 5.6,
"BB": 3.4,
"SO": 2.2,
"HR": 0.2,
"BF": 20.2,
"Pitches": 78.2
},
"rates": {
"ERA": 7.65,
"WHIP": 2.25,
"ER_per_IP": 0.85,
"H_per_IP": 1.4,
"BB_per_IP": 0.85,
"SO_per_IP": 0.55,
"HR_per_IP": 0.05
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 24.0,
"R": 24.0,
"H": 48.0,
"BB": 25.0,
"SO": 45.0,
"HR": 5.0,
"BF": 222.0,
"Pitches": 887.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 4.8,
"BB": 2.5,
"SO": 4.5,
"HR": 0.5,
"BF": 22.2,
"Pitches": 88.7
},
"rates": {
"ERA": 4.32,
"WHIP": 1.46,
"ER_per_IP": 0.48,
"H_per_IP": 0.96,
"BB_per_IP": 0.5,
"SO_per_IP": 0.9,
"HR_per_IP": 0.1
}
},
"season": {
"games": 32,
"totals": {
"IP": 165.2,
"ER": 86.0,
"R": 86.0,
"H": 155.0,
"BB": 69.0,
"SO": 172.0,
"HR": 19.0,
"BF": 720.0,
"Pitches": 2860.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6875,
"R": 2.6875,
"H": 4.8438,
"BB": 2.1562,
"SO": 5.375,
"HR": 0.5938,
"BF": 22.5,
"Pitches": 89.375
},
"rates": {
"ERA": 4.672,
"WHIP": 1.3521,
"ER_per_IP": 0.51911,
"H_per_IP": 0.93561,
"BB_per_IP": 0.4165,
"SO_per_IP": 1.03823,
"HR_per_IP": 0.11469
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.935,
"predicted_H": 5.224,
"predicted_BB": 2.797,
"predicted_SO": 3.665,
"predicted_HR": 0.415,
"predicted_ERA": 5.7133,
"predicted_WHIP": 1.7348
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.935,
"final": 2.5544,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.224,
"final": 4.3187,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.797,
"final": 2.0655,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.665,
"final": 3.3943,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.415,
"final": 0.6531,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7133,
"final": 5.7133,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7348,
"final": 1.7348,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.0,
"ER": 24,
"H": 48,
"BB": 25,
"SO": 45,
"HR": 5,
"ERA": 4.32,
"WHIP": 1.46,
"K9": 8.1,
"HR9": 0.9,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9859077622604742,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669022",
"player_name": "MacKenzie Gore",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 156,
"wins": 78,
"losses": 78,
"win_pct": 0.5,
"runs_scored": 653.0,
"runs_allowed": 687.0,
"run_differential": -34.0,
"run_differential_per_game": -0.2179,
"avg_runs_scored": 4.1859,
"avg_runs_allowed": 4.4038,
"offense_index": 0.9348,
"defense_index": 1.0168,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.0,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0082
},
"opponent": {
"team": "NYM",
"games": 156,
"wins": 71,
"losses": 85,
"win_pct": 0.4551,
"runs_scored": 668.0,
"runs_allowed": 709.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2628,
"avg_runs_scored": 4.2821,
"avg_runs_allowed": 4.5449,
"offense_index": 0.9563,
"defense_index": 0.9852,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.2,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1404
},
"edges": {
"quality_edge": 0.1486,
"offense_edge": -0.0652,
"opponent_offense_edge": -0.0437,
"defense_strength": 0.0168,
"opponent_defense_weakness": 0.0148,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0082,
"run_prevention": 0.9839,
"strikeout": 1.008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669022",
"profile": {
"available": true,
"pitcher_id": "669022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 699.0,
"k_percent": 23.9,
"bb_percent": 9.6,
"woba": 0.319,
"xwoba": 0.311,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 40.5,
"avg_best_speed": 77.3062,
"avg_hyper_speed": 94.4164,
"whiff_percent": 25.6,
"swing_percent": 48.8
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.0834,
"command_and_miss": 0.1336,
"regression_edge": 0.2286,
"xwoba_edge": 0.0071,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.3714,
"whiff_edge": 0.0786,
"bb_edge": -0.1125,
"pitch_design_score": 0.0212
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 90.23611334556708,
"release_spin_rate": 2168.650138380656,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 90.23611334556708,
"release_spin_rate": 2168.650138380656,
"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.2361,
"release_spin_rate": 2168.6501,
"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.0212,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1515,
"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.0126,
"sample_weight": 1.0,
"run_prevention_factor": 0.9989,
"strikeout_factor": 1.0146,
"walk_factor": 1.009,
"homer_factor": 1.0378,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669022",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9989,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9989,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.009,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0378,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0146,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 77,
"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/20260922_NYM@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_SD@LAD | away | Michael King | Michael King | True | 6.0 | 4.0 | -6 | 4 | 5 | 1 | 8/6 | 2/2 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0331491712707184,
"WHIP": 1.160220994475138,
"IP": 181.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.839,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0825,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9917,
"walk_factor": 1.001,
"homer_factor": 1.0,
"regression_flag": "neutral",
"k_percent": 20.9,
"bb_percent": 9.2,
"woba": 0.292,
"xwoba": 0.321,
"barrel_percent": 8.4,
"hard_hit_percent": 32.7,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 12,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "650633",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 5.0,
"R": 5.0,
"H": 25.0,
"BB": 10.0,
"SO": 26.0,
"HR": 2.0,
"BF": 126.0,
"Pitches": 490.0
},
"per_game": {
"IP": 6.1,
"ER": 1.0,
"R": 1.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.2,
"HR": 0.4,
"BF": 25.2,
"Pitches": 98.0
},
"rates": {
"ERA": 1.4062,
"WHIP": 1.0938,
"ER_per_IP": 0.15625,
"H_per_IP": 0.78125,
"BB_per_IP": 0.3125,
"SO_per_IP": 0.8125,
"HR_per_IP": 0.0625
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.2,
"ER": 18.0,
"R": 19.0,
"H": 51.0,
"BB": 19.0,
"SO": 51.0,
"HR": 9.0,
"BF": 245.0,
"Pitches": 968.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.9,
"H": 5.1,
"BB": 1.9,
"SO": 5.1,
"HR": 0.9,
"BF": 24.5,
"Pitches": 96.8
},
"rates": {
"ERA": 2.627,
"WHIP": 1.1351,
"ER_per_IP": 0.29189,
"H_per_IP": 0.82703,
"BB_per_IP": 0.30811,
"SO_per_IP": 0.82703,
"HR_per_IP": 0.14595
}
},
"season": {
"games": 31,
"totals": {
"IP": 181.0,
"ER": 61.0,
"R": 63.0,
"H": 142.0,
"BB": 68.0,
"SO": 154.0,
"HR": 20.0,
"BF": 736.0,
"Pitches": 2900.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9677,
"R": 2.0323,
"H": 4.5806,
"BB": 2.1935,
"SO": 4.9677,
"HR": 0.6452,
"BF": 23.7419,
"Pitches": 93.5484
},
"rates": {
"ERA": 3.0331,
"WHIP": 1.1602,
"ER_per_IP": 0.33702,
"H_per_IP": 0.78453,
"BB_per_IP": 0.37569,
"SO_per_IP": 0.85083,
"HR_per_IP": 0.1105
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.7,
"predicted_H": 5.046,
"predicted_BB": 2.028,
"predicted_SO": 5.154,
"predicted_HR": 0.661,
"predicted_ERA": 2.4964,
"predicted_WHIP": 1.1542
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.7,
"final": 2.64,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.046,
"final": 6.2533,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.028,
"final": 2.0166,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.154,
"final": 4.2737,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.661,
"final": 0.7995,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4964,
"final": 2.4964,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1542,
"final": 1.1542,
"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": 61.2,
"ER": 18,
"H": 51,
"BB": 19,
"SO": 51,
"HR": 9,
"ERA": 2.627027027027027,
"WHIP": 1.135135135135135,
"K9": 7.443243243243242,
"HR9": 1.3135135135135134,
"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-17T00:00:00"
},
"recent_form_boost": 0.7873266811793931,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 8,
"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": 4.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 156,
"wins": 87,
"losses": 69,
"win_pct": 0.5577,
"runs_scored": 690.0,
"runs_allowed": 649.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2628,
"avg_runs_scored": 4.4231,
"avg_runs_allowed": 4.1603,
"offense_index": 0.9861,
"defense_index": 1.0781,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 7.1,
"avg_runs_allowed": 4.7,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.2213
},
"opponent": {
"team": "LAD",
"games": 156,
"wins": 96,
"losses": 60,
"win_pct": 0.6154,
"runs_scored": 780.0,
"runs_allowed": 587.0,
"run_differential": 193.0,
"run_differential_per_game": 1.2372,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7628,
"offense_index": 1.1147,
"defense_index": 1.192,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 2.8,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.3198
},
"edges": {
"quality_edge": -0.0985,
"offense_edge": -0.0139,
"opponent_offense_edge": 0.1147,
"defense_strength": 0.0781,
"opponent_defense_weakness": -0.192,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9938,
"run_prevention": 1.0155,
"strikeout": 0.9879
},
"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": 705.0,
"k_percent": 20.9,
"bb_percent": 9.2,
"woba": 0.292,
"xwoba": 0.321,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 32.7,
"avg_best_speed": 75.915,
"avg_hyper_speed": 93.083,
"whiff_percent": 24.6,
"swing_percent": 46.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.0493,
"command_and_miss": -0.0893,
"regression_edge": -0.8286,
"xwoba_edge": -0.2786,
"barrel_edge": -0.2667,
"hard_hit_edge": 0.7429,
"whiff_edge": -0.0643,
"bb_edge": -0.0125,
"pitch_design_score": -0.0499
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650633",
"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": 88.9666257983146,
"release_spin_rate": 2288.299466647343,
"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": 88.9666257983146,
"release_spin_rate": 2288.299466647343,
"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.9666,
"release_spin_rate": 2288.2995,
"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.0499,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3563,
"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.0825,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9917,
"walk_factor": 1.001,
"homer_factor": 1.0,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "650633",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.007,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 1.007,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.001,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9917,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 29,
"Pitches": 120,
"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/20260922_SD@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_SD@LAD | home | Brock Stewart | Brock Stewart | True | 4.1 | 1.0 | -10 | 2 | 0 | -2 | 3/1 | 4/0 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.189189189189189,
"WHIP": 0.9324324324324323,
"IP": 24.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 0.987,
"recent_avg_IP": 0.933,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4256,
"sample_weight": 0.45,
"run_prevention_factor": 0.9638,
"strikeout_factor": 1.0148,
"walk_factor": 1.0041,
"homer_factor": 0.9241,
"regression_flag": "neutral",
"k_percent": 24.5,
"bb_percent": 9.6,
"woba": 0.248,
"xwoba": 0.245,
"barrel_percent": 4.8,
"hard_hit_percent": 25.8,
"whiff_percent": 28.2
},
"espn_rank": {
"rank": 254,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.02,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.501,
"prior_weight": 0.499
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592779",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 4.0,
"HR": 0.0,
"BF": 15.0,
"Pitches": 68.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.4,
"BB": 0.2,
"SO": 0.8,
"HR": 0.0,
"BF": 3.0,
"Pitches": 13.6
},
"rates": {
"ERA": 0.0,
"WHIP": 0.6429,
"ER_per_IP": 0.0,
"H_per_IP": 0.42857,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.0,
"ER": 2.0,
"R": 3.0,
"H": 8.0,
"BB": 4.0,
"SO": 7.0,
"HR": 0.0,
"BF": 35.0,
"Pitches": 123.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.3,
"H": 0.8,
"BB": 0.4,
"SO": 0.7,
"HR": 0.0,
"BF": 3.5,
"Pitches": 12.3
},
"rates": {
"ERA": 2.0,
"WHIP": 1.3333,
"ER_per_IP": 0.22222,
"H_per_IP": 0.88889,
"BB_per_IP": 0.44444,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.0
}
},
"season": {
"games": 25,
"totals": {
"IP": 24.2,
"ER": 6.0,
"R": 8.0,
"H": 14.0,
"BB": 9.0,
"SO": 23.0,
"HR": 2.0,
"BF": 93.0,
"Pitches": 351.0
},
"per_game": {
"IP": 1.0,
"ER": 0.24,
"R": 0.32,
"H": 0.56,
"BB": 0.36,
"SO": 0.92,
"HR": 0.08,
"BF": 3.72,
"Pitches": 14.04
},
"rates": {
"ERA": 2.1892,
"WHIP": 0.9324,
"ER_per_IP": 0.24324,
"H_per_IP": 0.56757,
"BB_per_IP": 0.36486,
"SO_per_IP": 0.93243,
"HR_per_IP": 0.08108
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 0.846,
"predicted_H": 2.127,
"predicted_BB": 0.933,
"predicted_SO": 2.373,
"predicted_HR": 0.22,
"predicted_ERA": 2.86,
"predicted_WHIP": 1.149
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5608,
"form_weight": 0.4392,
"form_reliability": 0.501,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.02,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.501,
"prior_weight": 0.499
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 2.2,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.846,
"final": 1.4932,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.127,
"final": 2.6166,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 0.933,
"final": 2.6531,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.373,
"final": 3.8463,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.22,
"final": 0.6574,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.86,
"final": 2.86,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.149,
"final": 1.149,
"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": 8.1,
"ER": 2,
"H": 8,
"BB": 4,
"SO": 6,
"HR": 0,
"ERA": 2.16,
"WHIP": 1.4400000000000002,
"K9": 6.480000000000001,
"HR9": 0.0,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9289927210843056,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.02,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.501,
"prior_weight": 0.499
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592779",
"player_name": "Brock Stewart",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 156,
"wins": 96,
"losses": 60,
"win_pct": 0.6154,
"runs_scored": 780.0,
"runs_allowed": 587.0,
"run_differential": 193.0,
"run_differential_per_game": 1.2372,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7628,
"offense_index": 1.1147,
"defense_index": 1.192,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 2.8,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.3198
},
"opponent": {
"team": "SD",
"games": 156,
"wins": 87,
"losses": 69,
"win_pct": 0.5577,
"runs_scored": 690.0,
"runs_allowed": 649.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2628,
"avg_runs_scored": 4.4231,
"avg_runs_allowed": 4.1603,
"offense_index": 0.9861,
"defense_index": 1.0781,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 7.1,
"avg_runs_allowed": 4.7,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.2213
},
"edges": {
"quality_edge": 0.0985,
"offense_edge": 0.1147,
"opponent_offense_edge": -0.0139,
"defense_strength": 0.192,
"opponent_defense_weakness": -0.0781,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0103,
"run_prevention": 0.9737,
"strikeout": 1.0041
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592779",
"profile": {
"available": true,
"pitcher_id": "592779",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 86.0,
"k_percent": 24.5,
"bb_percent": 9.6,
"woba": 0.248,
"xwoba": 0.245,
"sweet_spot_percent": 24.2,
"barrel_batted_rate": 4.8,
"hard_hit_percent": 25.8,
"avg_best_speed": 66.3437,
"avg_hyper_speed": 92.2968,
"whiff_percent": 28.2,
"swing_percent": 49.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 1.5205,
"command_and_miss": 0.3021,
"regression_edge": 0.0857,
"xwoba_edge": 1.8929,
"barrel_edge": 0.5333,
"hard_hit_edge": 1.7286,
"whiff_edge": 0.45,
"bb_edge": -0.1125,
"pitch_design_score": 0.0883
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592779",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 10,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 10,
"pitch_usage": 0.0,
"release_speed": 91.43371502899491,
"release_spin_rate": 2369.028774217187,
"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": 10,
"pitch_usage": 0.0,
"release_speed": 91.43371502899491,
"release_spin_rate": 2369.028774217187,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.4337,
"release_spin_rate": 2369.0288,
"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.0883,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.6305,
"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.4256,
"sample_weight": 0.45,
"run_prevention_factor": 0.9638,
"strikeout_factor": 1.0148,
"walk_factor": 1.0041,
"homer_factor": 0.9241,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592779",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9837,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9837,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 1.0018,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9658,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0067,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260922_SD@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_STL@PIT | away | Andre Pallante | Andre Pallante | True | 5.1 | 6.0 | 2 | 2 | 1 | -1 | 2/3 | 1/2 | 10/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6953642384105962,
"WHIP": 1.2582781456953642,
"IP": 151.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.593,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0286,
"sample_weight": 1.0,
"run_prevention_factor": 0.9976,
"strikeout_factor": 0.9471,
"walk_factor": 0.967,
"homer_factor": 0.936,
"regression_flag": "neutral",
"k_percent": 16.5,
"bb_percent": 7.5,
"woba": 0.301,
"xwoba": 0.309,
"barrel_percent": 4.9,
"hard_hit_percent": 34.2,
"whiff_percent": 21.2
},
"espn_rank": {
"rank": 73,
"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": "669467",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 12.0,
"R": 14.0,
"H": 29.0,
"BB": 10.0,
"SO": 14.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.8,
"H": 5.8,
"BB": 2.0,
"SO": 2.8,
"HR": 0.2,
"BF": 22.4,
"Pitches": 88.8
},
"rates": {
"ERA": 4.0,
"WHIP": 1.4444,
"ER_per_IP": 0.44444,
"H_per_IP": 1.07407,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.51852,
"HR_per_IP": 0.03704
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 24.0,
"R": 26.0,
"H": 54.0,
"BB": 20.0,
"SO": 34.0,
"HR": 2.0,
"BF": 231.0,
"Pitches": 912.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.6,
"H": 5.4,
"BB": 2.0,
"SO": 3.4,
"HR": 0.2,
"BF": 23.1,
"Pitches": 91.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.3214,
"ER_per_IP": 0.42857,
"H_per_IP": 0.96429,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.60714,
"HR_per_IP": 0.03571
}
},
"season": {
"games": 27,
"totals": {
"IP": 151.0,
"ER": 62.0,
"R": 66.0,
"H": 143.0,
"BB": 47.0,
"SO": 104.0,
"HR": 11.0,
"BF": 629.0,
"Pitches": 2462.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2963,
"R": 2.4444,
"H": 5.2963,
"BB": 1.7407,
"SO": 3.8519,
"HR": 0.4074,
"BF": 23.2963,
"Pitches": 91.1852
},
"rates": {
"ERA": 3.6954,
"WHIP": 1.2583,
"ER_per_IP": 0.4106,
"H_per_IP": 0.94702,
"BB_per_IP": 0.31126,
"SO_per_IP": 0.68874,
"HR_per_IP": 0.07285
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.438,
"predicted_H": 5.519,
"predicted_BB": 1.961,
"predicted_SO": 3.506,
"predicted_HR": 0.33,
"predicted_ERA": 3.9984,
"predicted_WHIP": 1.3629
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.438,
"final": 2.2558,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.519,
"final": 4.0551,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.961,
"final": 1.5612,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 10.0,
"form": 3.506,
"final": 6.2075,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.33,
"final": 1.0247,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9984,
"final": 3.9984,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3629,
"final": 1.3629,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 24,
"H": 54,
"BB": 20,
"SO": 34,
"HR": 2,
"ERA": 3.857142857142857,
"WHIP": 1.3214285714285714,
"K9": 5.464285714285714,
"HR9": 0.32142857142857145,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 0.9303720479747599,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 10.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669467",
"player_name": "Andre Pallante",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 10.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 156,
"wins": 76,
"losses": 80,
"win_pct": 0.4872,
"runs_scored": 704.0,
"runs_allowed": 727.0,
"run_differential": -23.0,
"run_differential_per_game": -0.1474,
"avg_runs_scored": 4.5128,
"avg_runs_allowed": 4.6603,
"offense_index": 1.0062,
"defense_index": 0.9624,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.4,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.064
},
"opponent": {
"team": "PIT",
"games": 156,
"wins": 79,
"losses": 77,
"win_pct": 0.5064,
"runs_scored": 748.0,
"runs_allowed": 719.0,
"run_differential": 29.0,
"run_differential_per_game": 0.1859,
"avg_runs_scored": 4.7949,
"avg_runs_allowed": 4.609,
"offense_index": 1.0691,
"defense_index": 0.9731,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.6,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0632
},
"edges": {
"quality_edge": -0.1272,
"offense_edge": 0.0062,
"opponent_offense_edge": 0.0691,
"defense_strength": -0.0376,
"opponent_defense_weakness": 0.0269,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.991,
"run_prevention": 1.0212,
"strikeout": 0.9907
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669467",
"profile": {
"available": true,
"pitcher_id": "669467",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 598.0,
"k_percent": 16.5,
"bb_percent": 7.5,
"woba": 0.301,
"xwoba": 0.309,
"sweet_spot_percent": 30.6,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 34.2,
"avg_best_speed": 75.5032,
"avg_hyper_speed": 93.4717,
"whiff_percent": 21.2,
"swing_percent": 44.8
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.3032,
"command_and_miss": -0.4571,
"regression_edge": -0.2286,
"xwoba_edge": 0.0643,
"barrel_edge": 0.5111,
"hard_hit_edge": 0.5286,
"whiff_edge": -0.55,
"bb_edge": 0.4125,
"pitch_design_score": 0.0073
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669467",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.9870971466055,
"release_spin_rate": 2284.8010573767824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.9870971466055,
"release_spin_rate": 2284.8010573767824,
"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.9871,
"release_spin_rate": 2284.8011,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0073,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0519,
"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.0286,
"sample_weight": 1.0,
"run_prevention_factor": 0.9976,
"strikeout_factor": 0.9471,
"walk_factor": 0.967,
"homer_factor": 0.936,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669467",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9976,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9976,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.967,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.936,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9471,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 10,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260922_STL@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_STL@PIT | home | Jared Jones | Jared Jones | True | 5.0 | 7.0 | 6 | 1 | 0 | -1 | 3/1 | 0/0 | 4/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.169117647058823,
"WHIP": 1.1911764705882353,
"IP": 90.2,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 4.772,
"recent_avg_IP": 5.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4335,
"sample_weight": 1.0,
"run_prevention_factor": 0.9632,
"strikeout_factor": 1.0814,
"walk_factor": 0.981,
"homer_factor": 0.9909,
"regression_flag": "neutral",
"k_percent": 28.7,
"bb_percent": 8.2,
"woba": 0.3,
"xwoba": 0.287,
"barrel_percent": 7.6,
"hard_hit_percent": 38.7,
"whiff_percent": 32.5
},
"espn_rank": {
"rank": 105,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683003",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 8.0,
"R": 8.0,
"H": 21.0,
"BB": 10.0,
"SO": 37.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.2,
"BB": 2.0,
"SO": 7.4,
"HR": 0.2,
"BF": 22.2,
"Pitches": 89.0
},
"rates": {
"ERA": 2.7,
"WHIP": 1.1625,
"ER_per_IP": 0.3,
"H_per_IP": 0.7875,
"BB_per_IP": 0.375,
"SO_per_IP": 1.3875,
"HR_per_IP": 0.0375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 24.0,
"R": 24.0,
"H": 45.0,
"BB": 19.0,
"SO": 61.0,
"HR": 7.0,
"BF": 217.0,
"Pitches": 842.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 4.5,
"BB": 1.9,
"SO": 6.1,
"HR": 0.7,
"BF": 21.7,
"Pitches": 84.2
},
"rates": {
"ERA": 4.2632,
"WHIP": 1.2632,
"ER_per_IP": 0.47368,
"H_per_IP": 0.88816,
"BB_per_IP": 0.375,
"SO_per_IP": 1.20395,
"HR_per_IP": 0.13816
}
},
"season": {
"games": 19,
"totals": {
"IP": 90.2,
"ER": 42.0,
"R": 43.0,
"H": 77.0,
"BB": 31.0,
"SO": 109.0,
"HR": 12.0,
"BF": 380.0,
"Pitches": 1493.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2105,
"R": 2.2632,
"H": 4.0526,
"BB": 1.6316,
"SO": 5.7368,
"HR": 0.6316,
"BF": 20.0,
"Pitches": 78.5789
},
"rates": {
"ERA": 4.1691,
"WHIP": 1.1912,
"ER_per_IP": 0.46324,
"H_per_IP": 0.84926,
"BB_per_IP": 0.34191,
"SO_per_IP": 1.20221,
"HR_per_IP": 0.13235
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.116,
"predicted_H": 4.384,
"predicted_BB": 1.874,
"predicted_SO": 6.148,
"predicted_HR": 0.525,
"predicted_ERA": 3.7593,
"predicted_WHIP": 1.2353
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.116,
"final": 1.6272,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.384,
"final": 3.7778,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.874,
"final": 1.0532,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.148,
"final": 5.2072,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.525,
"final": 0.295,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7593,
"final": 3.7593,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2353,
"final": 1.2353,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 24,
"H": 45,
"BB": 19,
"SO": 61,
"HR": 7,
"ERA": 4.263157894736842,
"WHIP": 1.263157894736842,
"K9": 10.835526315789473,
"HR9": 1.2434210526315788,
"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-16T00:00:00"
},
"recent_form_boost": 0.9745919727867899,
"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": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683003",
"player_name": "Jared Jones",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "PIT",
"games": 156,
"wins": 79,
"losses": 77,
"win_pct": 0.5064,
"runs_scored": 748.0,
"runs_allowed": 719.0,
"run_differential": 29.0,
"run_differential_per_game": 0.1859,
"avg_runs_scored": 4.7949,
"avg_runs_allowed": 4.609,
"offense_index": 1.0691,
"defense_index": 0.9731,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.6,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0632
},
"opponent": {
"team": "STL",
"games": 156,
"wins": 76,
"losses": 80,
"win_pct": 0.4872,
"runs_scored": 704.0,
"runs_allowed": 727.0,
"run_differential": -23.0,
"run_differential_per_game": -0.1474,
"avg_runs_scored": 4.5128,
"avg_runs_allowed": 4.6603,
"offense_index": 1.0062,
"defense_index": 0.9624,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.4,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.064
},
"edges": {
"quality_edge": 0.1272,
"offense_edge": 0.0691,
"opponent_offense_edge": 0.0062,
"defense_strength": -0.0269,
"opponent_defense_weakness": 0.0376,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.004,
"run_prevention": 0.9973,
"strikeout": 1.0033
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683003",
"profile": {
"available": true,
"pitcher_id": "683003",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 356.0,
"k_percent": 28.7,
"bb_percent": 8.2,
"woba": 0.3,
"xwoba": 0.287,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 38.7,
"avg_best_speed": 78.645,
"avg_hyper_speed": 94.1422,
"whiff_percent": 32.5,
"swing_percent": 48.6
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.2788,
"command_and_miss": 0.8571,
"regression_edge": 0.3714,
"xwoba_edge": 0.6929,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.1143,
"whiff_edge": 1.0643,
"bb_edge": 0.2375,
"pitch_design_score": 0.2169
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683003",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 93.73058494859055,
"release_spin_rate": 2516.3391420607936,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 93.73058494859055,
"release_spin_rate": 2516.3391420607936,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.7306,
"release_spin_rate": 2516.3391,
"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.2169,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5492,
"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.4335,
"sample_weight": 1.0,
"run_prevention_factor": 0.9632,
"strikeout_factor": 1.0814,
"walk_factor": 0.981,
"homer_factor": 0.9909,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683003",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9632,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9632,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.981,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9909,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0814,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"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."
},
{
"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/20260922_STL@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_TB@NYY | away | Nick Martinez | Drew Rasmussen | False | 6.0 | 6.2 | 2 | 1 | 1 | 0 | 5/1 | 0/3 | 5/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.941634241245136,
"WHIP": 1.0680933852140078,
"IP": 171.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.908,
"recent_avg_IP": 5.933,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0706,
"sample_weight": 1.0,
"run_prevention_factor": 1.006,
"strikeout_factor": 0.9151,
"walk_factor": 0.887,
"homer_factor": 0.9595,
"regression_flag": "neutral",
"k_percent": 14.8,
"bb_percent": 3.5,
"woba": 0.29,
"xwoba": 0.309,
"barrel_percent": 6.7,
"hard_hit_percent": 32.7,
"whiff_percent": 17.3
},
"espn_rank": {
"rank": 20,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607259",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 8.0,
"R": 8.0,
"H": 20.0,
"BB": 2.0,
"SO": 18.0,
"HR": 4.0,
"BF": 108.0,
"Pitches": 397.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 4.0,
"BB": 0.4,
"SO": 3.6,
"HR": 0.8,
"BF": 21.6,
"Pitches": 79.4
},
"rates": {
"ERA": 2.427,
"WHIP": 0.7416,
"ER_per_IP": 0.26966,
"H_per_IP": 0.67416,
"BB_per_IP": 0.06742,
"SO_per_IP": 0.60674,
"HR_per_IP": 0.13483
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 24.0,
"R": 24.0,
"H": 54.0,
"BB": 4.0,
"SO": 39.0,
"HR": 10.0,
"BF": 230.0,
"Pitches": 816.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.4,
"H": 5.4,
"BB": 0.4,
"SO": 3.9,
"HR": 1.0,
"BF": 23.0,
"Pitches": 81.6
},
"rates": {
"ERA": 3.6,
"WHIP": 0.9667,
"ER_per_IP": 0.4,
"H_per_IP": 0.9,
"BB_per_IP": 0.06667,
"SO_per_IP": 0.65,
"HR_per_IP": 0.16667
}
},
"season": {
"games": 29,
"totals": {
"IP": 171.1,
"ER": 56.0,
"R": 56.0,
"H": 159.0,
"BB": 24.0,
"SO": 101.0,
"HR": 21.0,
"BF": 682.0,
"Pitches": 2380.0
},
"per_game": {
"IP": 6.0,
"ER": 1.931,
"R": 1.931,
"H": 5.4828,
"BB": 0.8276,
"SO": 3.4828,
"HR": 0.7241,
"BF": 23.5172,
"Pitches": 82.069
},
"rates": {
"ERA": 2.9416,
"WHIP": 1.0681,
"ER_per_IP": 0.32685,
"H_per_IP": 0.92802,
"BB_per_IP": 0.14008,
"SO_per_IP": 0.58949,
"HR_per_IP": 0.12257
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.122,
"predicted_H": 4.98,
"predicted_BB": 0.75,
"predicted_SO": 3.992,
"predicted_HR": 0.866,
"predicted_ERA": 3.183,
"predicted_WHIP": 0.9549
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.122,
"final": 1.6596,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.98,
"final": 4.9882,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.75,
"final": 0.4409,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.992,
"final": 4.4074,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.866,
"final": 0.5091,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.183,
"final": 3.183,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9549,
"final": 0.9549,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 24,
"H": 54,
"BB": 4,
"SO": 39,
"HR": 10,
"ERA": 3.6,
"WHIP": 0.9666666666666667,
"K9": 5.85,
"HR9": 1.5,
"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-16T00:00:00"
},
"recent_form_boost": 0.8925744289271409,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607259",
"player_name": "Nick Martinez",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 155,
"wins": 95,
"losses": 60,
"win_pct": 0.6129,
"runs_scored": 707.0,
"runs_allowed": 624.0,
"run_differential": 83.0,
"run_differential_per_game": 0.5355,
"avg_runs_scored": 4.5613,
"avg_runs_allowed": 4.0258,
"offense_index": 1.013,
"defense_index": 1.1185,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 2.1,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.2664
},
"opponent": {
"team": "NYY",
"games": 155,
"wins": 89,
"losses": 66,
"win_pct": 0.5742,
"runs_scored": 713.0,
"runs_allowed": 576.0,
"run_differential": 137.0,
"run_differential_per_game": 0.8839,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.7161,
"offense_index": 1.0216,
"defense_index": 1.2117,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.3,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.206
},
"edges": {
"quality_edge": 0.0604,
"offense_edge": 0.013,
"opponent_offense_edge": 0.0216,
"defense_strength": 0.1185,
"opponent_defense_weakness": -0.2117,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0051,
"run_prevention": 0.9886,
"strikeout": 1.0001
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607259",
"profile": {
"available": true,
"pitcher_id": "607259",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 661.0,
"k_percent": 14.8,
"bb_percent": 3.5,
"woba": 0.29,
"xwoba": 0.309,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 32.7,
"avg_best_speed": 75.5651,
"avg_hyper_speed": 93.0912,
"whiff_percent": 17.3,
"swing_percent": 50.8
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.2531,
"command_and_miss": -0.5614,
"regression_edge": -0.5429,
"xwoba_edge": 0.0643,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.7429,
"whiff_edge": -1.1071,
"bb_edge": 1.4125,
"pitch_design_score": -0.1513
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607259",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 87.1563062875865,
"release_spin_rate": 2197.2474223566855,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 87.1563062875865,
"release_spin_rate": 2197.2474223566855,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.1563,
"release_spin_rate": 2197.2474,
"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.1513,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0805,
"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.0706,
"sample_weight": 1.0,
"run_prevention_factor": 1.006,
"strikeout_factor": 0.9151,
"walk_factor": 0.887,
"homer_factor": 0.9595,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607259",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.006,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.887,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9595,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9151,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260922_TB@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"
}
} |
| 20260922 | 20260922_TB@NYY | home | Carlos Rodón | Max Fried | False | 5.2 | 6.2 | 3 | 1 | 4 | 3 | 1/6 | 1/2 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9475982532751095,
"WHIP": 1.1266375545851528,
"IP": 76.1,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 5.089,
"recent_avg_IP": 5.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0639,
"sample_weight": 1.0,
"run_prevention_factor": 0.9946,
"strikeout_factor": 1.0506,
"walk_factor": 1.059,
"homer_factor": 0.9961,
"regression_flag": "negative_pitcher_regression",
"k_percent": 26.3,
"bb_percent": 12.1,
"woba": 0.266,
"xwoba": 0.307,
"barrel_percent": 6.8,
"hard_hit_percent": 39.1,
"whiff_percent": 29.5
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 76.1,
"season_ERA": 2.948,
"season_WHIP": 1.127,
"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": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607074",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 7.0,
"R": 9.0,
"H": 14.0,
"BB": 10.0,
"SO": 27.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 448.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.8,
"H": 2.8,
"BB": 2.0,
"SO": 5.4,
"HR": 0.6,
"BF": 20.8,
"Pitches": 89.6
},
"rates": {
"ERA": 2.4231,
"WHIP": 0.9231,
"ER_per_IP": 0.26923,
"H_per_IP": 0.53846,
"BB_per_IP": 0.38462,
"SO_per_IP": 1.03846,
"HR_per_IP": 0.11538
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 17.0,
"R": 21.0,
"H": 34.0,
"BB": 22.0,
"SO": 56.0,
"HR": 6.0,
"BF": 211.0,
"Pitches": 892.0
},
"per_game": {
"IP": 5.0,
"ER": 1.7,
"R": 2.1,
"H": 3.4,
"BB": 2.2,
"SO": 5.6,
"HR": 0.6,
"BF": 21.1,
"Pitches": 89.2
},
"rates": {
"ERA": 2.9805,
"WHIP": 1.0909,
"ER_per_IP": 0.33117,
"H_per_IP": 0.66234,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.11688
}
},
"season": {
"games": 15,
"totals": {
"IP": 76.1,
"ER": 25.0,
"R": 30.0,
"H": 48.0,
"BB": 38.0,
"SO": 83.0,
"HR": 7.0,
"BF": 315.0,
"Pitches": 1342.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6667,
"R": 2.0,
"H": 3.2,
"BB": 2.5333,
"SO": 5.5333,
"HR": 0.4667,
"BF": 21.0,
"Pitches": 89.4667
},
"rates": {
"ERA": 2.9476,
"WHIP": 1.1266,
"ER_per_IP": 0.32751,
"H_per_IP": 0.62882,
"BB_per_IP": 0.49782,
"SO_per_IP": 1.08734,
"HR_per_IP": 0.0917
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.871,
"predicted_H": 3.669,
"predicted_BB": 2.169,
"predicted_SO": 5.461,
"predicted_HR": 0.637,
"predicted_ERA": 3.1896,
"predicted_WHIP": 1.106
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.871,
"final": 1.4742,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.669,
"final": 2.4529,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.169,
"final": 1.6364,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.461,
"final": 6.1622,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.637,
"final": 0.8024,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1896,
"final": 3.1896,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.106,
"final": 1.106,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 17,
"H": 34,
"BB": 22,
"SO": 56,
"HR": 6,
"ERA": 2.980519480519481,
"WHIP": 1.090909090909091,
"K9": 9.818181818181818,
"HR9": 1.051948051948052,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.825988931091643,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607074",
"player_name": "Carlos Rod\u00f3n",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "NYY",
"games": 155,
"wins": 89,
"losses": 66,
"win_pct": 0.5742,
"runs_scored": 713.0,
"runs_allowed": 576.0,
"run_differential": 137.0,
"run_differential_per_game": 0.8839,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.7161,
"offense_index": 1.0216,
"defense_index": 1.2117,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.3,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.206
},
"opponent": {
"team": "TB",
"games": 155,
"wins": 95,
"losses": 60,
"win_pct": 0.6129,
"runs_scored": 707.0,
"runs_allowed": 624.0,
"run_differential": 83.0,
"run_differential_per_game": 0.5355,
"avg_runs_scored": 4.5613,
"avg_runs_allowed": 4.0258,
"offense_index": 1.013,
"defense_index": 1.1185,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 2.1,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.2664
},
"edges": {
"quality_edge": -0.0604,
"offense_edge": 0.0216,
"opponent_offense_edge": 0.013,
"defense_strength": 0.2117,
"opponent_defense_weakness": -0.1185,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0034,
"run_prevention": 0.9839,
"strikeout": 0.9971
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607074",
"profile": {
"available": true,
"pitcher_id": "607074",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 287.0,
"k_percent": 26.3,
"bb_percent": 12.1,
"woba": 0.266,
"xwoba": 0.307,
"sweet_spot_percent": 38.0,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 39.1,
"avg_best_speed": 80.4358,
"avg_hyper_speed": 94.1768,
"whiff_percent": 29.5,
"swing_percent": 47.8
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.1504,
"command_and_miss": 0.3579,
"regression_edge": -1.1714,
"xwoba_edge": 0.1214,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.1714,
"whiff_edge": 0.6357,
"bb_edge": -0.7375,
"pitch_design_score": 0.047
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607074",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.69711507632361,
"release_spin_rate": 2325.2804400378964,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.69711507632361,
"release_spin_rate": 2325.2804400378964,
"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.6971,
"release_spin_rate": 2325.2804,
"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.047,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3359,
"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.0639,
"sample_weight": 1.0,
"run_prevention_factor": 0.9946,
"strikeout_factor": 1.0506,
"walk_factor": 1.059,
"homer_factor": 0.9961,
"woba_minus_xwoba": -0.041,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "607074",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9946,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9946,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.059,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9961,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0506,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"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 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260922_TB@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"
}
} |
| 20260922 | 20260922_TOR@BAL | away | Max Scherzer | Max Scherzer | True | 5.0 | 5.0 | 0 | 5 | 4 | -1 | 6/4 | 2/3 | 3/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.068807339449541,
"WHIP": 1.3623853211009174,
"IP": 72.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.542,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2222,
"sample_weight": 1.0,
"run_prevention_factor": 1.0189,
"strikeout_factor": 0.9454,
"walk_factor": 1.013,
"homer_factor": 1.0171,
"regression_flag": "neutral",
"k_percent": 17.1,
"bb_percent": 9.8,
"woba": 0.331,
"xwoba": 0.32,
"barrel_percent": 8.8,
"hard_hit_percent": 34.6,
"whiff_percent": 20.3
},
"espn_rank": {
"rank": 769,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 12.0,
"R": 12.0,
"H": 20.0,
"BB": 11.0,
"SO": 22.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 421.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 4.0,
"BB": 2.2,
"SO": 4.4,
"HR": 0.4,
"BF": 22.6,
"Pitches": 84.2
},
"rates": {
"ERA": 3.9036,
"WHIP": 1.1205,
"ER_per_IP": 0.43373,
"H_per_IP": 0.72289,
"BB_per_IP": 0.39759,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 24.0,
"R": 24.0,
"H": 41.0,
"BB": 20.0,
"SO": 40.0,
"HR": 5.0,
"BF": 213.0,
"Pitches": 829.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 4.1,
"BB": 2.0,
"SO": 4.0,
"HR": 0.5,
"BF": 21.3,
"Pitches": 82.9
},
"rates": {
"ERA": 4.2632,
"WHIP": 1.2039,
"ER_per_IP": 0.47368,
"H_per_IP": 0.80921,
"BB_per_IP": 0.39474,
"SO_per_IP": 0.78947,
"HR_per_IP": 0.09868
}
},
"season": {
"games": 16,
"totals": {
"IP": 72.2,
"ER": 49.0,
"R": 49.0,
"H": 68.0,
"BB": 31.0,
"SO": 54.0,
"HR": 14.0,
"BF": 315.0,
"Pitches": 1254.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0625,
"R": 3.0625,
"H": 4.25,
"BB": 1.9375,
"SO": 3.375,
"HR": 0.875,
"BF": 19.6875,
"Pitches": 78.375
},
"rates": {
"ERA": 6.0688,
"WHIP": 1.3624,
"ER_per_IP": 0.67431,
"H_per_IP": 0.93578,
"BB_per_IP": 0.42661,
"SO_per_IP": 0.74312,
"HR_per_IP": 0.19266
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.585,
"predicted_H": 4.348,
"predicted_BB": 2.051,
"predicted_SO": 4.244,
"predicted_HR": 0.6,
"predicted_ERA": 4.4927,
"predicted_WHIP": 1.2358
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.585,
"final": 3.6732,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.348,
"final": 5.0924,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.051,
"final": 2.028,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.244,
"final": 3.6835,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.6,
"final": 1.2308,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4927,
"final": 4.4927,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2358,
"final": 1.2358,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 24,
"H": 41,
"BB": 20,
"SO": 40,
"HR": 5,
"ERA": 4.2631578947368425,
"WHIP": 1.2039473684210527,
"K9": 7.105263157894737,
"HR9": 0.8881578947368421,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9731117096288953,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 157,
"wins": 77,
"losses": 80,
"win_pct": 0.4904,
"runs_scored": 632.0,
"runs_allowed": 675.0,
"run_differential": -43.0,
"run_differential_per_game": -0.2739,
"avg_runs_scored": 4.0255,
"avg_runs_allowed": 4.2994,
"offense_index": 0.8965,
"defense_index": 1.0444,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.7,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0767
},
"opponent": {
"team": "BAL",
"games": 157,
"wins": 76,
"losses": 81,
"win_pct": 0.4841,
"runs_scored": 697.0,
"runs_allowed": 727.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1911,
"avg_runs_scored": 4.4395,
"avg_runs_allowed": 4.6306,
"offense_index": 0.9887,
"defense_index": 0.9697,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 3.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0369
},
"edges": {
"quality_edge": -0.0398,
"offense_edge": -0.1035,
"opponent_offense_edge": -0.0113,
"defense_strength": 0.0444,
"opponent_defense_weakness": 0.0303,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0002,
"run_prevention": 0.9957,
"strikeout": 0.9997
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 294.0,
"k_percent": 17.1,
"bb_percent": 9.8,
"woba": 0.331,
"xwoba": 0.32,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 34.6,
"avg_best_speed": 76.4694,
"avg_hyper_speed": 93.3859,
"whiff_percent": 20.3,
"swing_percent": 49.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1651,
"command_and_miss": -0.5786,
"regression_edge": 0.3143,
"xwoba_edge": -0.25,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.4714,
"whiff_edge": -0.6786,
"bb_edge": -0.1625,
"pitch_design_score": -0.1345
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.45516823346536,
"release_spin_rate": 2266.2043740371455,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.45516823346536,
"release_spin_rate": 2266.2043740371455,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4552,
"release_spin_rate": 2266.2044,
"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.1345,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9609,
"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.2222,
"sample_weight": 1.0,
"run_prevention_factor": 1.0189,
"strikeout_factor": 0.9454,
"walk_factor": 1.013,
"homer_factor": 1.0171,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "453286",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0189,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0189,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.013,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0171,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9454,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260922_TOR@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_TOR@BAL | home | Chris Bassitt | Chris Bassitt | True | 5.0 | 5.0 | 0 | 4 | 2 | -2 | 8/7 | 1/1 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.639175257731959,
"WHIP": 1.5463917525773196,
"IP": 97.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.098,
"recent_avg_IP": 5.933,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3072,
"sample_weight": 1.0,
"run_prevention_factor": 1.0261,
"strikeout_factor": 0.9489,
"walk_factor": 0.985,
"homer_factor": 0.9807,
"regression_flag": "neutral",
"k_percent": 16.4,
"bb_percent": 8.4,
"woba": 0.346,
"xwoba": 0.339,
"barrel_percent": 5.0,
"hard_hit_percent": 37.2,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 229,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605135",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 12.0,
"R": 12.0,
"H": 30.0,
"BB": 11.0,
"SO": 26.0,
"HR": 3.0,
"BF": 129.0,
"Pitches": 479.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.4,
"H": 6.0,
"BB": 2.2,
"SO": 5.2,
"HR": 0.6,
"BF": 25.8,
"Pitches": 95.8
},
"rates": {
"ERA": 3.6404,
"WHIP": 1.382,
"ER_per_IP": 0.40449,
"H_per_IP": 1.01124,
"BB_per_IP": 0.37079,
"SO_per_IP": 0.8764,
"HR_per_IP": 0.10112
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 24.0,
"R": 24.0,
"H": 59.0,
"BB": 18.0,
"SO": 42.0,
"HR": 6.0,
"BF": 236.0,
"Pitches": 856.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 5.9,
"BB": 1.8,
"SO": 4.2,
"HR": 0.6,
"BF": 23.6,
"Pitches": 85.6
},
"rates": {
"ERA": 4.0,
"WHIP": 1.4259,
"ER_per_IP": 0.44444,
"H_per_IP": 1.09259,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.11111
}
},
"season": {
"games": 19,
"totals": {
"IP": 97.0,
"ER": 50.0,
"R": 51.0,
"H": 113.0,
"BB": 37.0,
"SO": 72.0,
"HR": 10.0,
"BF": 438.0,
"Pitches": 1641.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6316,
"R": 2.6842,
"H": 5.9474,
"BB": 1.9474,
"SO": 3.7895,
"HR": 0.5263,
"BF": 23.0526,
"Pitches": 86.3684
},
"rates": {
"ERA": 4.6392,
"WHIP": 1.5464,
"ER_per_IP": 0.51546,
"H_per_IP": 1.16495,
"BB_per_IP": 0.38144,
"SO_per_IP": 0.74227,
"HR_per_IP": 0.10309
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.543,
"predicted_H": 5.877,
"predicted_BB": 2.029,
"predicted_SO": 4.697,
"predicted_HR": 0.638,
"predicted_ERA": 4.0958,
"predicted_WHIP": 1.4149
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.543,
"final": 3.1812,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.877,
"final": 6.8069,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.029,
"final": 1.5783,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.697,
"final": 4.3917,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.638,
"final": 1.6726,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0958,
"final": 4.0958,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4149,
"final": 1.4149,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 24,
"H": 59,
"BB": 18,
"SO": 42,
"HR": 6,
"ERA": 4.0,
"WHIP": 1.4259259259259258,
"K9": 7.0,
"HR9": 1.0,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9490559104086222,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 3
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605135",
"player_name": "Chris Bassitt",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 3.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 157,
"wins": 76,
"losses": 81,
"win_pct": 0.4841,
"runs_scored": 697.0,
"runs_allowed": 727.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1911,
"avg_runs_scored": 4.4395,
"avg_runs_allowed": 4.6306,
"offense_index": 0.9887,
"defense_index": 0.9697,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 3.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0369
},
"opponent": {
"team": "TOR",
"games": 157,
"wins": 77,
"losses": 80,
"win_pct": 0.4904,
"runs_scored": 632.0,
"runs_allowed": 675.0,
"run_differential": -43.0,
"run_differential_per_game": -0.2739,
"avg_runs_scored": 4.0255,
"avg_runs_allowed": 4.2994,
"offense_index": 0.8965,
"defense_index": 1.0444,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.7,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0767
},
"edges": {
"quality_edge": 0.0398,
"offense_edge": -0.0113,
"opponent_offense_edge": -0.1035,
"defense_strength": -0.0303,
"opponent_defense_weakness": -0.0444,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0048,
"run_prevention": 0.9845,
"strikeout": 1.0095
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605135",
"profile": {
"available": true,
"pitcher_id": "605135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 412.0,
"k_percent": 16.4,
"bb_percent": 8.4,
"woba": 0.346,
"xwoba": 0.339,
"sweet_spot_percent": 30.9,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 37.2,
"avg_best_speed": 76.9092,
"avg_hyper_speed": 93.7593,
"whiff_percent": 21.6,
"swing_percent": 46.1
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.3215,
"command_and_miss": -0.4886,
"regression_edge": 0.2,
"xwoba_edge": -0.7929,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.1,
"whiff_edge": -0.4929,
"bb_edge": 0.1875,
"pitch_design_score": -0.2512
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605135",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 85.3723472409564,
"release_spin_rate": 2180.5493208905896,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 85.3723472409564,
"release_spin_rate": 2180.5493208905896,
"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.3723,
"release_spin_rate": 2180.5493,
"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.2512,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.794,
"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.3072,
"sample_weight": 1.0,
"run_prevention_factor": 1.0261,
"strikeout_factor": 0.9489,
"walk_factor": 0.985,
"homer_factor": 0.9807,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605135",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0261,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0261,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.985,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9807,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9489,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260922_TOR@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_WAS@DET | away | Riley Cornelio | Riley Cornelio | True | 4.0 | 2.2 | -4 | 2 | 0 | -2 | 5/1 | 2/3 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.21875,
"WHIP": 1.53125,
"IP": 32.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 2.5,
"recent_avg_IP": 2.5,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0983,
"sample_weight": 0.528,
"run_prevention_factor": 0.9916,
"strikeout_factor": 1.037,
"walk_factor": 1.0892,
"homer_factor": 1.0133,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 17.6,
"woba": 0.302,
"xwoba": 0.296,
"barrel_percent": 7.2,
"hard_hit_percent": 44.6,
"whiff_percent": 35.3
},
"espn_rank": {
"rank": 725,
"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": 6.512,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5657,
"prior_weight": 0.4343
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683000",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 12.0,
"ER": 3.0,
"R": 5.0,
"H": 7.0,
"BB": 5.0,
"SO": 14.0,
"HR": 1.0,
"BF": 46.0,
"Pitches": 184.0
},
"per_game": {
"IP": 2.1,
"ER": 0.6,
"R": 1.0,
"H": 1.4,
"BB": 1.0,
"SO": 2.8,
"HR": 0.2,
"BF": 9.2,
"Pitches": 36.8
},
"rates": {
"ERA": 2.25,
"WHIP": 1.0,
"ER_per_IP": 0.25,
"H_per_IP": 0.58333,
"BB_per_IP": 0.41667,
"SO_per_IP": 1.16667,
"HR_per_IP": 0.08333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.1,
"ER": 4.0,
"R": 10.0,
"H": 10.0,
"BB": 13.0,
"SO": 22.0,
"HR": 1.0,
"BF": 79.0,
"Pitches": 343.0
},
"per_game": {
"IP": 2.0,
"ER": 0.4,
"R": 1.0,
"H": 1.0,
"BB": 1.3,
"SO": 2.2,
"HR": 0.1,
"BF": 7.9,
"Pitches": 34.3
},
"rates": {
"ERA": 1.8621,
"WHIP": 1.1897,
"ER_per_IP": 0.2069,
"H_per_IP": 0.51724,
"BB_per_IP": 0.67241,
"SO_per_IP": 1.13793,
"HR_per_IP": 0.05172
}
},
"season": {
"games": 16,
"totals": {
"IP": 32.0,
"ER": 15.0,
"R": 22.0,
"H": 24.0,
"BB": 25.0,
"SO": 34.0,
"HR": 2.0,
"BF": 142.0,
"Pitches": 594.0
},
"per_game": {
"IP": 2.0,
"ER": 0.9375,
"R": 1.375,
"H": 1.5,
"BB": 1.5625,
"SO": 2.125,
"HR": 0.125,
"BF": 8.875,
"Pitches": 37.125
},
"rates": {
"ERA": 4.2188,
"WHIP": 1.5312,
"ER_per_IP": 0.46875,
"H_per_IP": 0.75,
"BB_per_IP": 0.78125,
"SO_per_IP": 1.0625,
"HR_per_IP": 0.0625
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.229,
"predicted_H": 2.47,
"predicted_BB": 1.592,
"predicted_SO": 3.404,
"predicted_HR": 0.335,
"predicted_ERA": 3.4118,
"predicted_WHIP": 1.2524
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5335,
"form_weight": 0.4665,
"form_reliability": 0.5657,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.512,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5657,
"prior_weight": 0.4343
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.229,
"final": 1.6403,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.47,
"final": 3.8197,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.592,
"final": 1.8097,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.404,
"final": 5.3224,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.335,
"final": 0.6898,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4118,
"final": 3.4118,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2524,
"final": 1.2524,
"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": 19.1,
"ER": 4,
"H": 10,
"BB": 13,
"SO": 22,
"HR": 1,
"ERA": 1.8620689655172415,
"WHIP": 1.1896551724137931,
"K9": 10.241379310344827,
"HR9": 0.4655172413793104,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.8098254221068851,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.512,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5657,
"prior_weight": 0.4343
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683000",
"player_name": "Riley Cornelio",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 800.0,
"runs_allowed": 795.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0318,
"avg_runs_scored": 5.0955,
"avg_runs_allowed": 5.0637,
"offense_index": 1.1362,
"defense_index": 0.8857,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.8,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0091
},
"opponent": {
"team": "DET",
"games": 157,
"wins": 74,
"losses": 83,
"win_pct": 0.4713,
"runs_scored": 706.0,
"runs_allowed": 631.0,
"run_differential": 75.0,
"run_differential_per_game": 0.4777,
"avg_runs_scored": 4.4968,
"avg_runs_allowed": 4.0191,
"offense_index": 1.0027,
"defense_index": 1.1159,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.3,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.0692
},
"edges": {
"quality_edge": -0.0601,
"offense_edge": 0.1362,
"opponent_offense_edge": 0.0027,
"defense_strength": -0.1143,
"opponent_defense_weakness": -0.1159,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9941,
"run_prevention": 1.0149,
"strikeout": 0.998
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683000",
"profile": {
"available": true,
"pitcher_id": "683000",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 132.0,
"k_percent": 23.9,
"bb_percent": 17.6,
"woba": 0.302,
"xwoba": 0.296,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 44.6,
"avg_best_speed": 76.3029,
"avg_hyper_speed": 93.9986,
"whiff_percent": 35.3,
"swing_percent": 48.1
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.1993,
"command_and_miss": 0.2186,
"regression_edge": 0.1714,
"xwoba_edge": 0.4357,
"barrel_edge": 0.0,
"hard_hit_edge": -0.9571,
"whiff_edge": 1.4643,
"bb_edge": -2.1125,
"pitch_design_score": 0.0071
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683000",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 37,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 37,
"pitch_usage": 0.0,
"release_speed": 89.98441720106709,
"release_spin_rate": 2324.6194638196635,
"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": 37,
"pitch_usage": 0.0,
"release_speed": 89.98441720106709,
"release_spin_rate": 2324.6194638196635,
"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.9844,
"release_spin_rate": 2324.6195,
"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.0071,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0508,
"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.0983,
"sample_weight": 0.528,
"run_prevention_factor": 0.9916,
"strikeout_factor": 1.037,
"walk_factor": 1.0892,
"homer_factor": 1.0133,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683000",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9956,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9956,
"adjusted": 1
},
"predicted_BB": {
"original": 1.0,
"factor": 1.0471,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.007,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0195,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260922_WAS@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260922 | 20260922_WAS@DET | home | Drew Anderson | Drew Anderson | True | 5.0 | 6.0 | 3 | 3 | 3 | 0 | 3/5 | 3/0 | 9/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6176470588235294,
"WHIP": 1.2941176470588236,
"IP": 102.0,
"games_started": null,
"games_pitched": 48,
"role_avg_IP": 4.567,
"recent_avg_IP": 5.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1654,
"sample_weight": 1.0,
"run_prevention_factor": 0.9859,
"strikeout_factor": 1.03,
"walk_factor": 1.019,
"homer_factor": 1.0043,
"regression_flag": "neutral",
"k_percent": 25.1,
"bb_percent": 10.1,
"woba": 0.317,
"xwoba": 0.301,
"barrel_percent": 8.0,
"hard_hit_percent": 37.7,
"whiff_percent": 27.1
},
"espn_rank": {
"rank": 496,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.757,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8059,
"prior_weight": 0.1941
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "623454",
"report_date": "20260922",
"season_year": 2026,
"rows_used": 48,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 7.0,
"R": 8.0,
"H": 19.0,
"BB": 14.0,
"SO": 22.0,
"HR": 3.0,
"BF": 107.0,
"Pitches": 428.0
},
"per_game": {
"IP": 5.0,
"ER": 1.4,
"R": 1.6,
"H": 3.8,
"BB": 2.8,
"SO": 4.4,
"HR": 0.6,
"BF": 21.4,
"Pitches": 85.6
},
"rates": {
"ERA": 2.4545,
"WHIP": 1.2857,
"ER_per_IP": 0.27273,
"H_per_IP": 0.74026,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 41.0,
"ER": 13.0,
"R": 14.0,
"H": 32.0,
"BB": 20.0,
"SO": 35.0,
"HR": 5.0,
"BF": 170.0,
"Pitches": 666.0
},
"per_game": {
"IP": 4.0,
"ER": 1.3,
"R": 1.4,
"H": 3.2,
"BB": 2.0,
"SO": 3.5,
"HR": 0.5,
"BF": 17.0,
"Pitches": 66.6
},
"rates": {
"ERA": 2.8537,
"WHIP": 1.2683,
"ER_per_IP": 0.31707,
"H_per_IP": 0.78049,
"BB_per_IP": 0.4878,
"SO_per_IP": 0.85366,
"HR_per_IP": 0.12195
}
},
"season": {
"games": 48,
"totals": {
"IP": 102.0,
"ER": 41.0,
"R": 45.0,
"H": 89.0,
"BB": 43.0,
"SO": 109.0,
"HR": 14.0,
"BF": 434.0,
"Pitches": 1699.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8542,
"R": 0.9375,
"H": 1.8542,
"BB": 0.8958,
"SO": 2.2708,
"HR": 0.2917,
"BF": 9.0417,
"Pitches": 35.3958
},
"rates": {
"ERA": 3.6176,
"WHIP": 1.2941,
"ER_per_IP": 0.40196,
"H_per_IP": 0.87255,
"BB_per_IP": 0.42157,
"SO_per_IP": 1.06863,
"HR_per_IP": 0.13725
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.491,
"predicted_H": 3.47,
"predicted_BB": 2.017,
"predicted_SO": 3.836,
"predicted_HR": 0.541,
"predicted_ERA": 3.1689,
"predicted_WHIP": 1.2959
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.432,
"form_weight": 0.568,
"form_reliability": 0.8059,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.757,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8059,
"prior_weight": 0.1941
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.491,
"final": 2.1429,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.47,
"final": 3.267,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.017,
"final": 2.4417,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.836,
"final": 5.2029,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.541,
"final": 0.7393,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1689,
"final": 3.1689,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2959,
"final": 1.2959,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 41.0,
"ER": 13,
"H": 32,
"BB": 20,
"SO": 35,
"HR": 5,
"ERA": 2.8536585365853657,
"WHIP": 1.2682926829268293,
"K9": 7.682926829268292,
"HR9": 1.0975609756097562,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 0.8161516646994984,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.757,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8059,
"prior_weight": 0.1941
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "623454",
"player_name": "Drew Anderson",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 157,
"wins": 74,
"losses": 83,
"win_pct": 0.4713,
"runs_scored": 706.0,
"runs_allowed": 631.0,
"run_differential": 75.0,
"run_differential_per_game": 0.4777,
"avg_runs_scored": 4.4968,
"avg_runs_allowed": 4.0191,
"offense_index": 1.0027,
"defense_index": 1.1159,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.3,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.0692
},
"opponent": {
"team": "WAS",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 800.0,
"runs_allowed": 795.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0318,
"avg_runs_scored": 5.0955,
"avg_runs_allowed": 5.0637,
"offense_index": 1.1362,
"defense_index": 0.8857,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.8,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0091
},
"edges": {
"quality_edge": 0.0601,
"offense_edge": 0.0027,
"opponent_offense_edge": 0.1362,
"defense_strength": 0.1159,
"opponent_defense_weakness": 0.1143,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 1.0072,
"strikeout": 0.9909
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "623454",
"profile": {
"available": true,
"pitcher_id": "623454",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 392.0,
"k_percent": 25.1,
"bb_percent": 10.1,
"woba": 0.317,
"xwoba": 0.301,
"sweet_spot_percent": 28.6,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 37.7,
"avg_best_speed": 79.6961,
"avg_hyper_speed": 93.9191,
"whiff_percent": 27.1,
"swing_percent": 49.1
},
"league_medians": {
"pa": 134.5,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.316,
"xwoba": 0.3113,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.595,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.05,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.0898,
"command_and_miss": 0.2607,
"regression_edge": 0.4571,
"xwoba_edge": 0.2929,
"barrel_edge": -0.1778,
"hard_hit_edge": 0.0286,
"whiff_edge": 0.2929,
"bb_edge": -0.2375,
"pitch_design_score": 0.0199
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "623454",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.212223774853,
"release_spin_rate": 2142.1592491274655,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.212223774853,
"release_spin_rate": 2142.1592491274655,
"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.2122,
"release_spin_rate": 2142.1592,
"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.0199,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1419,
"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.1654,
"sample_weight": 1.0,
"run_prevention_factor": 0.9859,
"strikeout_factor": 1.03,
"walk_factor": 1.019,
"homer_factor": 1.0043,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "623454",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9859,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9859,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.019,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0043,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.03,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 9,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260922_WAS@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_ARI@COL | away | Merrill Kelly | Merrill Kelly | True | 5.1 | 5.1 | 0 | 5 | 2 | -3 | 9/4 | 3/1 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.997872340425532,
"WHIP": 1.4744680851063832,
"IP": 156.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.595,
"recent_avg_IP": 5.533,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.9213,
"sample_weight": 1.0,
"run_prevention_factor": 1.0783,
"strikeout_factor": 0.9486,
"walk_factor": 1.02,
"homer_factor": 1.158,
"regression_flag": "neutral",
"k_percent": 16.3,
"bb_percent": 10.1,
"woba": 0.354,
"xwoba": 0.38,
"barrel_percent": 11.4,
"hard_hit_percent": 42.2,
"whiff_percent": 21.7
},
"espn_rank": {
"rank": 367,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "518876",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 10.0,
"R": 11.0,
"H": 23.0,
"BB": 12.0,
"SO": 27.0,
"HR": 2.0,
"BF": 118.0,
"Pitches": 464.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.2,
"H": 4.6,
"BB": 2.4,
"SO": 5.4,
"HR": 0.4,
"BF": 23.6,
"Pitches": 92.8
},
"rates": {
"ERA": 3.253,
"WHIP": 1.2651,
"ER_per_IP": 0.36145,
"H_per_IP": 0.83133,
"BB_per_IP": 0.43373,
"SO_per_IP": 0.9759,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 28.0,
"R": 30.0,
"H": 50.0,
"BB": 28.0,
"SO": 46.0,
"HR": 6.0,
"BF": 232.0,
"Pitches": 890.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.0,
"H": 5.0,
"BB": 2.8,
"SO": 4.6,
"HR": 0.6,
"BF": 23.2,
"Pitches": 89.0
},
"rates": {
"ERA": 4.7547,
"WHIP": 1.4717,
"ER_per_IP": 0.5283,
"H_per_IP": 0.9434,
"BB_per_IP": 0.5283,
"SO_per_IP": 0.86792,
"HR_per_IP": 0.11321
}
},
"season": {
"games": 28,
"totals": {
"IP": 156.2,
"ER": 87.0,
"R": 91.0,
"H": 162.0,
"BB": 69.0,
"SO": 111.0,
"HR": 28.0,
"BF": 683.0,
"Pitches": 2543.0
},
"per_game": {
"IP": 5.2,
"ER": 3.1071,
"R": 3.25,
"H": 5.7857,
"BB": 2.4643,
"SO": 3.9643,
"HR": 1.0,
"BF": 24.3929,
"Pitches": 90.8214
},
"rates": {
"ERA": 4.9979,
"WHIP": 1.4745,
"ER_per_IP": 0.55532,
"H_per_IP": 1.03404,
"BB_per_IP": 0.44043,
"SO_per_IP": 0.70851,
"HR_per_IP": 0.17872
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.596,
"predicted_H": 5.131,
"predicted_BB": 2.529,
"predicted_SO": 4.97,
"predicted_HR": 0.635,
"predicted_ERA": 4.1971,
"predicted_WHIP": 1.3759
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.596,
"final": 3.5913,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.131,
"final": 6.7328,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.529,
"final": 2.724,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.97,
"final": 4.1544,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.635,
"final": 0.7861,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1971,
"final": 4.1971,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3759,
"final": 1.3759,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 28,
"H": 50,
"BB": 28,
"SO": 46,
"HR": 6,
"ERA": 4.754716981132075,
"WHIP": 1.471698113207547,
"K9": 7.811320754716981,
"HR9": 1.0188679245283019,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.0354119066472924,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 5,
"predicted_H": 9,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "518876",
"player_name": "Merrill Kelly",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.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": 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.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 157,
"wins": 83,
"losses": 74,
"win_pct": 0.5287,
"runs_scored": 700.0,
"runs_allowed": 696.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0255,
"avg_runs_scored": 4.4586,
"avg_runs_allowed": 4.4331,
"offense_index": 0.9946,
"defense_index": 1.0113,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.7,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0275
},
"opponent": {
"team": "COL",
"games": 157,
"wins": 57,
"losses": 100,
"win_pct": 0.3631,
"runs_scored": 729.0,
"runs_allowed": 911.0,
"run_differential": -182.0,
"run_differential_per_game": -1.1592,
"avg_runs_scored": 4.6433,
"avg_runs_allowed": 5.8025,
"offense_index": 1.0358,
"defense_index": 0.7726,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.5,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.3636
},
"edges": {
"quality_edge": 0.3911,
"offense_edge": -0.0054,
"opponent_offense_edge": 0.0358,
"defense_strength": 0.0113,
"opponent_defense_weakness": 0.2274,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0146,
"run_prevention": 0.985,
"strikeout": 1.0089
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "518876",
"profile": {
"available": true,
"pitcher_id": "518876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 629.0,
"k_percent": 16.3,
"bb_percent": 10.1,
"woba": 0.354,
"xwoba": 0.38,
"sweet_spot_percent": 38.0,
"barrel_batted_rate": 11.4,
"hard_hit_percent": 42.2,
"avg_best_speed": 78.994,
"avg_hyper_speed": 94.6761,
"whiff_percent": 21.7,
"swing_percent": 49.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.2388,
"command_and_miss": -0.58,
"regression_edge": -0.7429,
"xwoba_edge": -1.9571,
"barrel_edge": -0.9333,
"hard_hit_edge": -0.6143,
"whiff_edge": -0.4857,
"bb_edge": -0.25,
"pitch_design_score": -0.0313
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "518876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.30413110861726,
"release_spin_rate": 2317.3364498145124,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.30413110861726,
"release_spin_rate": 2317.3364498145124,
"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.3041,
"release_spin_rate": 2317.3364,
"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.0313,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2238,
"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.9213,
"sample_weight": 1.0,
"run_prevention_factor": 1.0783,
"strikeout_factor": 0.9486,
"walk_factor": 1.02,
"homer_factor": 1.158,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "518876",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0783,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0783,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.158,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9486,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 9,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 109,
"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 5",
"detail": "Actual minus predicted hits was -5."
}
],
"provenance": {
"prediction": "output/games/20260923_ARI@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_ARI@COL | home | Mason Adams | Mason Adams | True | 4.1 | 6.0 | 5 | 5 | 0 | -5 | 6/5 | 4/0 | 4/8 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 5.086956521739131,
"WHIP": 1.6521739130434783,
"IP": 23.0,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.6,
"recent_avg_IP": 4.6,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3867,
"sample_weight": 0.45,
"run_prevention_factor": 1.0329,
"strikeout_factor": 0.9864,
"walk_factor": 1.0252,
"homer_factor": 1.094,
"regression_flag": "positive_pitcher_regression",
"k_percent": 22.8,
"bb_percent": 11.9,
"woba": 0.406,
"xwoba": 0.364,
"barrel_percent": 10.8,
"hard_hit_percent": 55.4,
"whiff_percent": 18.9
},
"espn_rank": {
"rank": 271,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "690279",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 13.0,
"R": 13.0,
"H": 26.0,
"BB": 12.0,
"SO": 23.0,
"HR": 6.0,
"BF": 101.0,
"Pitches": 388.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.2,
"BB": 2.4,
"SO": 4.6,
"HR": 1.2,
"BF": 20.2,
"Pitches": 77.6
},
"rates": {
"ERA": 5.087,
"WHIP": 1.6522,
"ER_per_IP": 0.56522,
"H_per_IP": 1.13043,
"BB_per_IP": 0.52174,
"SO_per_IP": 1.0,
"HR_per_IP": 0.26087
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 13.0,
"R": 13.0,
"H": 26.0,
"BB": 12.0,
"SO": 23.0,
"HR": 6.0,
"BF": 101.0,
"Pitches": 388.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.2,
"BB": 2.4,
"SO": 4.6,
"HR": 1.2,
"BF": 20.2,
"Pitches": 77.6
},
"rates": {
"ERA": 5.087,
"WHIP": 1.6522,
"ER_per_IP": 0.56522,
"H_per_IP": 1.13043,
"BB_per_IP": 0.52174,
"SO_per_IP": 1.0,
"HR_per_IP": 0.26087
}
},
"season": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 13.0,
"R": 13.0,
"H": 26.0,
"BB": 12.0,
"SO": 23.0,
"HR": 6.0,
"BF": 101.0,
"Pitches": 388.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.2,
"BB": 2.4,
"SO": 4.6,
"HR": 1.2,
"BF": 20.2,
"Pitches": 77.6
},
"rates": {
"ERA": 5.087,
"WHIP": 1.6522,
"ER_per_IP": 0.56522,
"H_per_IP": 1.13043,
"BB_per_IP": 0.52174,
"SO_per_IP": 1.0,
"HR_per_IP": 0.26087
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.508,
"predicted_H": 4.925,
"predicted_BB": 2.096,
"predicted_SO": 4.52,
"predicted_HR": 0.955,
"predicted_ERA": 4.8369,
"predicted_WHIP": 1.5046
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.508,
"final": 4.4679,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.925,
"final": 4.4058,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.096,
"final": 3.1646,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.52,
"final": 4.2282,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.955,
"final": 1.5415,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8369,
"final": 4.8369,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5046,
"final": 1.5046,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 23.0,
"ER": 13,
"H": 26,
"BB": 12,
"SO": 23,
"HR": 6,
"ERA": 5.086956521739131,
"WHIP": 1.6521739130434783,
"K9": 9.0,
"HR9": 2.347826086956522,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.0588670302728374,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 6.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 6,
"predicted_H": 4,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 2
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 6,
"predicted_H": 6,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690279",
"player_name": "Mason Adams",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 6.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 6.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 157,
"wins": 57,
"losses": 100,
"win_pct": 0.3631,
"runs_scored": 729.0,
"runs_allowed": 911.0,
"run_differential": -182.0,
"run_differential_per_game": -1.1592,
"avg_runs_scored": 4.6433,
"avg_runs_allowed": 5.8025,
"offense_index": 1.0358,
"defense_index": 0.7726,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.5,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.3636
},
"opponent": {
"team": "ARI",
"games": 157,
"wins": 83,
"losses": 74,
"win_pct": 0.5287,
"runs_scored": 700.0,
"runs_allowed": 696.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0255,
"avg_runs_scored": 4.4586,
"avg_runs_allowed": 4.4331,
"offense_index": 0.9946,
"defense_index": 1.0113,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.7,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0275
},
"edges": {
"quality_edge": -0.3911,
"offense_edge": 0.0358,
"opponent_offense_edge": -0.0054,
"defense_strength": -0.2274,
"opponent_defense_weakness": -0.0113,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9778,
"run_prevention": 1.0414,
"strikeout": 0.9887
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690279",
"profile": {
"available": true,
"pitcher_id": "690279",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 77.0,
"k_percent": 22.8,
"bb_percent": 11.9,
"woba": 0.406,
"xwoba": 0.364,
"sweet_spot_percent": 41.5,
"barrel_batted_rate": 10.8,
"hard_hit_percent": 55.4,
"avg_best_speed": 82.8197,
"avg_hyper_speed": 95.8825,
"whiff_percent": 18.9,
"swing_percent": 46.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.5639,
"command_and_miss": -0.3921,
"regression_edge": 1.2,
"xwoba_edge": -1.5,
"barrel_edge": -0.8,
"hard_hit_edge": -2.5,
"whiff_edge": -0.8857,
"bb_edge": -0.7,
"pitch_design_score": -0.021
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690279",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 76,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 89.4878385893386,
"release_spin_rate": 2271.065268740269,
"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": 76,
"pitch_usage": 0.0,
"release_speed": 89.4878385893386,
"release_spin_rate": 2271.065268740269,
"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.4878,
"release_spin_rate": 2271.0653,
"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.021,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1503,
"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.3867,
"sample_weight": 0.45,
"run_prevention_factor": 1.0329,
"strikeout_factor": 0.9864,
"walk_factor": 1.0252,
"homer_factor": 1.094,
"woba_minus_xwoba": 0.042,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "690279",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0148,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0148,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0113,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0423,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9939,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260923_ARI@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_CHW@KC | away | Bryan Hudson | Bryan Hudson | True | 5.0 | 0.1 | -14 | 2 | 3 | 1 | 4/4 | 6/0 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.6173469387755106,
"WHIP": 1.1632653061224492,
"IP": 65.1,
"games_started": null,
"games_pitched": 66,
"role_avg_IP": 1.208,
"recent_avg_IP": 1.267,
"last_start_IP": 1.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4575,
"sample_weight": 1.0,
"run_prevention_factor": 0.9611,
"strikeout_factor": 0.9909,
"walk_factor": 0.944,
"homer_factor": 0.9149,
"regression_flag": "neutral",
"k_percent": 21.9,
"bb_percent": 6.3,
"woba": 0.292,
"xwoba": 0.273,
"barrel_percent": 4.3,
"hard_hit_percent": 37.8,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 99,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 65.1,
"season_ERA": 2.617,
"season_WHIP": 1.163,
"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": 13.31,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7269,
"prior_weight": 0.2731
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663542",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 66,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.1,
"ER": 2.0,
"R": 2.0,
"H": 6.0,
"BB": 0.0,
"SO": 2.0,
"HR": 1.0,
"BF": 16.0,
"Pitches": 58.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.4,
"H": 1.2,
"BB": 0.0,
"SO": 0.4,
"HR": 0.2,
"BF": 3.2,
"Pitches": 11.6
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.3846,
"ER_per_IP": 0.46154,
"H_per_IP": 1.38462,
"BB_per_IP": 0.0,
"SO_per_IP": 0.46154,
"HR_per_IP": 0.23077
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.1,
"ER": 2.0,
"R": 2.0,
"H": 11.0,
"BB": 0.0,
"SO": 7.0,
"HR": 1.0,
"BF": 38.0,
"Pitches": 129.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.1,
"BB": 0.0,
"SO": 0.7,
"HR": 0.1,
"BF": 3.8,
"Pitches": 12.9
},
"rates": {
"ERA": 1.7419,
"WHIP": 1.0645,
"ER_per_IP": 0.19355,
"H_per_IP": 1.06452,
"BB_per_IP": 0.0,
"SO_per_IP": 0.67742,
"HR_per_IP": 0.09677
}
},
"season": {
"games": 66,
"totals": {
"IP": 65.1,
"ER": 19.0,
"R": 21.0,
"H": 59.0,
"BB": 17.0,
"SO": 59.0,
"HR": 5.0,
"BF": 266.0,
"Pitches": 1003.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2879,
"R": 0.3182,
"H": 0.8939,
"BB": 0.2576,
"SO": 0.8939,
"HR": 0.0758,
"BF": 4.0303,
"Pitches": 15.197
},
"rates": {
"ERA": 2.6173,
"WHIP": 1.1633,
"ER_per_IP": 0.29082,
"H_per_IP": 0.90306,
"BB_per_IP": 0.2602,
"SO_per_IP": 0.90306,
"HR_per_IP": 0.07653
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.903,
"predicted_H": 2.656,
"predicted_BB": 0.333,
"predicted_SO": 1.681,
"predicted_HR": 0.359,
"predicted_ERA": 3.4351,
"predicted_WHIP": 1.2634
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4654,
"form_weight": 0.5346,
"form_reliability": 0.7269,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.31,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7269,
"prior_weight": 0.2731
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.903,
"final": 1.8789,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.656,
"final": 3.2815,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 6.0,
"form": 0.333,
"final": 2.9703,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 1.681,
"final": 3.2256,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.359,
"final": 0.1919,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4351,
"final": 3.4351,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2634,
"final": 1.2634,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.1,
"ER": 2,
"H": 11,
"BB": 0,
"SO": 7,
"HR": 1,
"ERA": 1.741935483870968,
"WHIP": 1.0645161290322582,
"K9": 6.096774193548388,
"HR9": 0.870967741935484,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.8926694782047592,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 6.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.31,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7269,
"prior_weight": 0.2731
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 6,
"predicted_SO": 5,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 6,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663542",
"player_name": "Bryan Hudson",
"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": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 157,
"wins": 81,
"losses": 76,
"win_pct": 0.5159,
"runs_scored": 747.0,
"runs_allowed": 702.0,
"run_differential": 45.0,
"run_differential_per_game": 0.2866,
"avg_runs_scored": 4.758,
"avg_runs_allowed": 4.4713,
"offense_index": 1.062,
"defense_index": 1.002,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.9,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0837
},
"opponent": {
"team": "KC",
"games": 157,
"wins": 67,
"losses": 90,
"win_pct": 0.4268,
"runs_scored": 667.0,
"runs_allowed": 772.0,
"run_differential": -105.0,
"run_differential_per_game": -0.6688,
"avg_runs_scored": 4.2484,
"avg_runs_allowed": 4.9172,
"offense_index": 0.9483,
"defense_index": 0.9111,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.5,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.2493
},
"edges": {
"quality_edge": 0.333,
"offense_edge": 0.062,
"opponent_offense_edge": -0.0517,
"defense_strength": 0.002,
"opponent_defense_weakness": 0.0889,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0154,
"run_prevention": 0.9749,
"strikeout": 1.0141
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663542",
"profile": {
"available": true,
"pitcher_id": "663542",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 256.0,
"k_percent": 21.9,
"bb_percent": 6.3,
"woba": 0.292,
"xwoba": 0.273,
"sweet_spot_percent": 29.3,
"barrel_batted_rate": 4.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 76.9829,
"avg_hyper_speed": 93.3373,
"whiff_percent": 23.5,
"swing_percent": 48.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7034,
"command_and_miss": 0.06,
"regression_edge": 0.5429,
"xwoba_edge": 1.1,
"barrel_edge": 0.6444,
"hard_hit_edge": 0.0143,
"whiff_edge": -0.2286,
"bb_edge": 0.7,
"pitch_design_score": -0.0787
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663542",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 88.45909611346684,
"release_spin_rate": 2154.7309004103313,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 88.45909611346684,
"release_spin_rate": 2154.7309004103313,
"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.4591,
"release_spin_rate": 2154.7309,
"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.0787,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5618,
"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.4575,
"sample_weight": 1.0,
"run_prevention_factor": 0.9611,
"strikeout_factor": 0.9909,
"walk_factor": 0.944,
"homer_factor": 0.9149,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663542",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9611,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9611,
"adjusted": 2
},
"predicted_BB": {
"original": 0.0,
"factor": 0.944,
"adjusted": 0
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9149,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9909,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 6,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -14 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -6."
}
],
"provenance": {
"prediction": "output/games/20260923_CHW@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_CHW@KC | home | Seth Lugo | Seth Lugo | True | 4.2 | 3.1 | -4 | 3 | 4 | 1 | 4/7 | 6/0 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.059171597633136,
"WHIP": 1.4615384615384615,
"IP": 169.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.452,
"recent_avg_IP": 4.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4979,
"sample_weight": 1.0,
"run_prevention_factor": 1.0423,
"strikeout_factor": 0.9411,
"walk_factor": 0.966,
"homer_factor": 1.0692,
"regression_flag": "neutral",
"k_percent": 17.9,
"bb_percent": 7.4,
"woba": 0.359,
"xwoba": 0.343,
"barrel_percent": 8.0,
"hard_hit_percent": 42.8,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 689,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607625",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 19.0,
"R": 19.0,
"H": 38.0,
"BB": 8.0,
"SO": 20.0,
"HR": 7.0,
"BF": 113.0,
"Pitches": 448.0
},
"per_game": {
"IP": 4.2,
"ER": 3.8,
"R": 3.8,
"H": 7.6,
"BB": 1.6,
"SO": 4.0,
"HR": 1.4,
"BF": 22.6,
"Pitches": 89.6
},
"rates": {
"ERA": 7.2254,
"WHIP": 1.9437,
"ER_per_IP": 0.80282,
"H_per_IP": 1.60563,
"BB_per_IP": 0.33803,
"SO_per_IP": 0.84507,
"HR_per_IP": 0.29577
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 38.0,
"R": 38.0,
"H": 70.0,
"BB": 16.0,
"SO": 37.0,
"HR": 8.0,
"BF": 233.0,
"Pitches": 903.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 3.8,
"H": 7.0,
"BB": 1.6,
"SO": 3.7,
"HR": 0.8,
"BF": 23.3,
"Pitches": 90.3
},
"rates": {
"ERA": 6.6623,
"WHIP": 1.6753,
"ER_per_IP": 0.74026,
"H_per_IP": 1.36364,
"BB_per_IP": 0.31169,
"SO_per_IP": 0.72078,
"HR_per_IP": 0.15584
}
},
"season": {
"games": 31,
"totals": {
"IP": 169.0,
"ER": 95.0,
"R": 103.0,
"H": 193.0,
"BB": 54.0,
"SO": 131.0,
"HR": 23.0,
"BF": 732.0,
"Pitches": 2786.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0645,
"R": 3.3226,
"H": 6.2258,
"BB": 1.7419,
"SO": 4.2258,
"HR": 0.7419,
"BF": 23.6129,
"Pitches": 89.871
},
"rates": {
"ERA": 5.0592,
"WHIP": 1.4615,
"ER_per_IP": 0.56213,
"H_per_IP": 1.14201,
"BB_per_IP": 0.31953,
"SO_per_IP": 0.77515,
"HR_per_IP": 0.13609
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.459,
"predicted_H": 6.732,
"predicted_BB": 1.637,
"predicted_SO": 3.984,
"predicted_HR": 1.013,
"predicted_ERA": 6.3161,
"predicted_WHIP": 1.6983
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.459,
"final": 3.6801,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 6.732,
"final": 5.6155,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 6.0,
"form": 1.637,
"final": 3.4201,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.984,
"final": 4.8079,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.013,
"final": 0.599,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.3161,
"final": 6.3161,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6983,
"final": 1.6983,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 38,
"H": 70,
"BB": 16,
"SO": 37,
"HR": 8,
"ERA": 6.662337662337663,
"WHIP": 1.6753246753246755,
"K9": 6.487012987012988,
"HR9": 1.4025974025974026,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 1.2551098973358492,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 6.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 6,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607625",
"player_name": "Seth Lugo",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 157,
"wins": 67,
"losses": 90,
"win_pct": 0.4268,
"runs_scored": 667.0,
"runs_allowed": 772.0,
"run_differential": -105.0,
"run_differential_per_game": -0.6688,
"avg_runs_scored": 4.2484,
"avg_runs_allowed": 4.9172,
"offense_index": 0.9483,
"defense_index": 0.9111,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.5,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.2493
},
"opponent": {
"team": "CHW",
"games": 157,
"wins": 81,
"losses": 76,
"win_pct": 0.5159,
"runs_scored": 747.0,
"runs_allowed": 702.0,
"run_differential": 45.0,
"run_differential_per_game": 0.2866,
"avg_runs_scored": 4.758,
"avg_runs_allowed": 4.4713,
"offense_index": 1.062,
"defense_index": 1.002,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.9,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0837
},
"edges": {
"quality_edge": -0.333,
"offense_edge": -0.0517,
"opponent_offense_edge": 0.062,
"defense_strength": -0.0889,
"opponent_defense_weakness": -0.002,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9815,
"run_prevention": 1.0355,
"strikeout": 0.985
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607625",
"profile": {
"available": true,
"pitcher_id": "607625",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 704.0,
"k_percent": 17.9,
"bb_percent": 7.4,
"woba": 0.359,
"xwoba": 0.343,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 42.8,
"avg_best_speed": 79.0229,
"avg_hyper_speed": 94.5587,
"whiff_percent": 18.8,
"swing_percent": 46.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7117,
"command_and_miss": -0.4871,
"regression_edge": 0.4571,
"xwoba_edge": -0.9,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.7,
"whiff_edge": -0.9,
"bb_edge": 0.425,
"pitch_design_score": -0.2303
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607625",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 85.75049184869331,
"release_spin_rate": 2511.4585714700015,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 85.75049184869331,
"release_spin_rate": 2511.4585714700015,
"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.7505,
"release_spin_rate": 2511.4586,
"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.2303,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6453,
"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.4979,
"sample_weight": 1.0,
"run_prevention_factor": 1.0423,
"strikeout_factor": 0.9411,
"walk_factor": 0.966,
"homer_factor": 1.0692,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607625",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0423,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0423,
"adjusted": 7
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0692,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9411,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 6,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -6."
}
],
"provenance": {
"prediction": "output/games/20260923_CHW@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_CIN@ATL | away | Andrew Abbott | Andrew Abbott | True | 4.1 | 7.0 | 8 | 1 | 2 | 1 | 5/6 | 1/1 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.69811320754717,
"WHIP": 1.471698113207547,
"IP": 159.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.129,
"recent_avg_IP": 3.933,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4444,
"sample_weight": 1.0,
"run_prevention_factor": 1.0378,
"strikeout_factor": 0.9606,
"walk_factor": 1.032,
"homer_factor": 1.0482,
"regression_flag": "neutral",
"k_percent": 17.8,
"bb_percent": 10.7,
"woba": 0.335,
"xwoba": 0.341,
"barrel_percent": 8.2,
"hard_hit_percent": 38.8,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 150,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "671096",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.2,
"ER": 20.0,
"R": 22.0,
"H": 30.0,
"BB": 9.0,
"SO": 17.0,
"HR": 6.0,
"BF": 97.0,
"Pitches": 355.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.4,
"H": 6.0,
"BB": 1.8,
"SO": 3.4,
"HR": 1.2,
"BF": 19.4,
"Pitches": 71.0
},
"rates": {
"ERA": 9.1525,
"WHIP": 1.9831,
"ER_per_IP": 1.01695,
"H_per_IP": 1.52542,
"BB_per_IP": 0.45763,
"SO_per_IP": 0.86441,
"HR_per_IP": 0.30508
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 35.0,
"R": 37.0,
"H": 54.0,
"BB": 25.0,
"SO": 35.0,
"HR": 8.0,
"BF": 220.0,
"Pitches": 832.0
},
"per_game": {
"IP": 4.2,
"ER": 3.5,
"R": 3.7,
"H": 5.4,
"BB": 2.5,
"SO": 3.5,
"HR": 0.8,
"BF": 22.0,
"Pitches": 83.2
},
"rates": {
"ERA": 6.5625,
"WHIP": 1.6458,
"ER_per_IP": 0.72917,
"H_per_IP": 1.125,
"BB_per_IP": 0.52083,
"SO_per_IP": 0.72917,
"HR_per_IP": 0.16667
}
},
"season": {
"games": 31,
"totals": {
"IP": 159.0,
"ER": 83.0,
"R": 89.0,
"H": 159.0,
"BB": 75.0,
"SO": 125.0,
"HR": 24.0,
"BF": 701.0,
"Pitches": 2769.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6774,
"R": 2.871,
"H": 5.129,
"BB": 2.4194,
"SO": 4.0323,
"HR": 0.7742,
"BF": 22.6129,
"Pitches": 89.3226
},
"rates": {
"ERA": 4.6981,
"WHIP": 1.4717,
"ER_per_IP": 0.52201,
"H_per_IP": 1.0,
"BB_per_IP": 0.4717,
"SO_per_IP": 0.78616,
"HR_per_IP": 0.15094
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.459,
"predicted_H": 5.531,
"predicted_BB": 2.089,
"predicted_SO": 3.663,
"predicted_HR": 0.96,
"predicted_ERA": 6.9706,
"predicted_WHIP": 1.7064
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.459,
"final": 2.454,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.531,
"final": 5.314,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.089,
"final": 1.6439,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 3.663,
"final": 5.4355,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.96,
"final": 0.9763,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.9706,
"final": 6.9706,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7064,
"final": 1.7064,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 35,
"H": 54,
"BB": 25,
"SO": 35,
"HR": 8,
"ERA": 6.5625,
"WHIP": 1.6458333333333333,
"K9": 6.5625,
"HR9": 1.5,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.2431408767730785,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671096",
"player_name": "Andrew Abbott",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 646.0,
"runs_allowed": 805.0,
"run_differential": -159.0,
"run_differential_per_game": -1.0127,
"avg_runs_scored": 4.1146,
"avg_runs_allowed": 5.1274,
"offense_index": 0.9184,
"defense_index": 0.8738,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.2,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.1891
},
"opponent": {
"team": "ATL",
"games": 157,
"wins": 92,
"losses": 65,
"win_pct": 0.586,
"runs_scored": 722.0,
"runs_allowed": 606.0,
"run_differential": 116.0,
"run_differential_per_game": 0.7389,
"avg_runs_scored": 4.5987,
"avg_runs_allowed": 3.8599,
"offense_index": 1.0265,
"defense_index": 1.1607,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.5,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1988
},
"edges": {
"quality_edge": -0.3879,
"offense_edge": -0.0816,
"opponent_offense_edge": 0.0265,
"defense_strength": -0.1262,
"opponent_defense_weakness": -0.1607,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9796,
"run_prevention": 1.0363,
"strikeout": 0.9862
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671096",
"profile": {
"available": true,
"pitcher_id": "671096",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 645.0,
"k_percent": 17.8,
"bb_percent": 10.7,
"woba": 0.335,
"xwoba": 0.341,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 38.8,
"avg_best_speed": 79.7415,
"avg_hyper_speed": 94.2035,
"whiff_percent": 22.3,
"swing_percent": 46.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5185,
"command_and_miss": -0.4836,
"regression_edge": -0.1714,
"xwoba_edge": -0.8429,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.1286,
"whiff_edge": -0.4,
"bb_edge": -0.4,
"pitch_design_score": -0.1391
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671096",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 87.37940672170677,
"release_spin_rate": 2443.046166911797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 87.37940672170677,
"release_spin_rate": 2443.046166911797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.3794,
"release_spin_rate": 2443.0462,
"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.1391,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9937,
"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.4444,
"sample_weight": 1.0,
"run_prevention_factor": 1.0378,
"strikeout_factor": 0.9606,
"walk_factor": 1.032,
"homer_factor": 1.0482,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "671096",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0378,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0378,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.032,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0482,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9606,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 81,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +8 outs from the projected workload."
},
{
"code": "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/20260923_CIN@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"
}
} |
| 20260923 | 20260923_CIN@ATL | home | Chris Sale | Chris Sale | True | 6.1 | 5.2 | -2 | 2 | 1 | -1 | 3/4 | 2/0 | 5/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.178343949044586,
"WHIP": 0.9936305732484076,
"IP": 157.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.038,
"recent_avg_IP": 6.8,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6599,
"sample_weight": 1.0,
"run_prevention_factor": 0.9439,
"strikeout_factor": 1.0754,
"walk_factor": 0.916,
"homer_factor": 0.9303,
"regression_flag": "neutral",
"k_percent": 30.3,
"bb_percent": 4.9,
"woba": 0.259,
"xwoba": 0.271,
"barrel_percent": 6.1,
"hard_hit_percent": 35.2,
"whiff_percent": 29.9
},
"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": 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": "519242",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 34.0,
"ER": 8.0,
"R": 8.0,
"H": 27.0,
"BB": 3.0,
"SO": 39.0,
"HR": 1.0,
"BF": 133.0,
"Pitches": 508.0
},
"per_game": {
"IP": 6.2,
"ER": 1.6,
"R": 1.6,
"H": 5.4,
"BB": 0.6,
"SO": 7.8,
"HR": 0.2,
"BF": 26.6,
"Pitches": 101.6
},
"rates": {
"ERA": 2.1176,
"WHIP": 0.8824,
"ER_per_IP": 0.23529,
"H_per_IP": 0.79412,
"BB_per_IP": 0.08824,
"SO_per_IP": 1.14706,
"HR_per_IP": 0.02941
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 14.0,
"R": 14.0,
"H": 43.0,
"BB": 7.0,
"SO": 78.0,
"HR": 1.0,
"BF": 235.0,
"Pitches": 935.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.4,
"H": 4.3,
"BB": 0.7,
"SO": 7.8,
"HR": 0.1,
"BF": 23.5,
"Pitches": 93.5
},
"rates": {
"ERA": 2.0323,
"WHIP": 0.8065,
"ER_per_IP": 0.22581,
"H_per_IP": 0.69355,
"BB_per_IP": 0.1129,
"SO_per_IP": 1.25806,
"HR_per_IP": 0.01613
}
},
"season": {
"games": 26,
"totals": {
"IP": 157.0,
"ER": 38.0,
"R": 43.0,
"H": 125.0,
"BB": 31.0,
"SO": 190.0,
"HR": 9.0,
"BF": 627.0,
"Pitches": 2477.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4615,
"R": 1.6538,
"H": 4.8077,
"BB": 1.1923,
"SO": 7.3077,
"HR": 0.3462,
"BF": 24.1154,
"Pitches": 95.2692
},
"rates": {
"ERA": 2.1783,
"WHIP": 0.9936,
"ER_per_IP": 0.24204,
"H_per_IP": 0.79618,
"BB_per_IP": 0.19745,
"SO_per_IP": 1.21019,
"HR_per_IP": 0.05732
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.779,
"predicted_H": 5.09,
"predicted_BB": 1.027,
"predicted_SO": 7.405,
"predicted_HR": 0.316,
"predicted_ERA": 2.501,
"predicted_WHIP": 0.9553
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.779,
"final": 2.7077,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.09,
"final": 5.4705,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.027,
"final": 1.4339,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 7.405,
"final": 5.1449,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.316,
"final": 0.1839,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.501,
"final": 2.501,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9553,
"final": 0.9553,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 14,
"H": 43,
"BB": 7,
"SO": 78,
"HR": 1,
"ERA": 2.032258064516129,
"WHIP": 0.8064516129032258,
"K9": 11.32258064516129,
"HR9": 0.14516129032258066,
"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-11T00:00:00"
},
"recent_form_boost": 0.7125041160203904,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 2,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.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": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 157,
"wins": 92,
"losses": 65,
"win_pct": 0.586,
"runs_scored": 722.0,
"runs_allowed": 606.0,
"run_differential": 116.0,
"run_differential_per_game": 0.7389,
"avg_runs_scored": 4.5987,
"avg_runs_allowed": 3.8599,
"offense_index": 1.0265,
"defense_index": 1.1607,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.5,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1988
},
"opponent": {
"team": "CIN",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 646.0,
"runs_allowed": 805.0,
"run_differential": -159.0,
"run_differential_per_game": -1.0127,
"avg_runs_scored": 4.1146,
"avg_runs_allowed": 5.1274,
"offense_index": 0.9184,
"defense_index": 0.8738,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.2,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.1891
},
"edges": {
"quality_edge": 0.3879,
"offense_edge": 0.0265,
"opponent_offense_edge": -0.0816,
"defense_strength": 0.1607,
"opponent_defense_weakness": 0.1262,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0236,
"run_prevention": 0.9515,
"strikeout": 1.0182
},
"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": 575.0,
"k_percent": 30.3,
"bb_percent": 4.9,
"woba": 0.259,
"xwoba": 0.271,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 35.2,
"avg_best_speed": 77.0619,
"avg_hyper_speed": 93.4771,
"whiff_percent": 29.9,
"swing_percent": 50.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7892,
"command_and_miss": 0.99,
"regression_edge": -0.3429,
"xwoba_edge": 1.1571,
"barrel_edge": 0.2444,
"hard_hit_edge": 0.3857,
"whiff_edge": 0.6857,
"bb_edge": 1.05,
"pitch_design_score": -0.0645
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "519242",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 103,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 103,
"pitch_usage": 0.0,
"release_speed": 88.7123798188993,
"release_spin_rate": 2355.026241900336,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 103,
"pitch_usage": 0.0,
"release_speed": 88.7123798188993,
"release_spin_rate": 2355.026241900336,
"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.7124,
"release_spin_rate": 2355.0262,
"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.0645,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4605,
"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.6599,
"sample_weight": 1.0,
"run_prevention_factor": 0.9439,
"strikeout_factor": 1.0754,
"walk_factor": 0.916,
"homer_factor": 0.9303,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "519242",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9439,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9439,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.916,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9303,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0754,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260923_CIN@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"
}
} |
| 20260923 | 20260923_CLE@BOS | away | Foster Griffin | Foster Griffin | True | 5.1 | 6.0 | 2 | 4 | 1 | -3 | 4/10 | 3/0 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.672,
"WHIP": 1.1940000000000002,
"IP": 166.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.556,
"recent_avg_IP": 4.467,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0994,
"sample_weight": 1.0,
"run_prevention_factor": 1.0085,
"strikeout_factor": 0.988,
"walk_factor": 0.948,
"homer_factor": 1.0275,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.5,
"woba": 0.311,
"xwoba": 0.32,
"barrel_percent": 8.5,
"hard_hit_percent": 37.4,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 38,
"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": "656492",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 17.0,
"R": 17.0,
"H": 29.0,
"BB": 10.0,
"SO": 20.0,
"HR": 0.0,
"BF": 104.0,
"Pitches": 424.0
},
"per_game": {
"IP": 4.1,
"ER": 3.4,
"R": 3.4,
"H": 5.8,
"BB": 2.0,
"SO": 4.0,
"HR": 0.0,
"BF": 20.8,
"Pitches": 84.8
},
"rates": {
"ERA": 6.8507,
"WHIP": 1.7463,
"ER_per_IP": 0.76119,
"H_per_IP": 1.29851,
"BB_per_IP": 0.44776,
"SO_per_IP": 0.89552,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 33.0,
"R": 35.0,
"H": 60.0,
"BB": 18.0,
"SO": 40.0,
"HR": 6.0,
"BF": 220.0,
"Pitches": 882.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3,
"R": 3.5,
"H": 6.0,
"BB": 1.8,
"SO": 4.0,
"HR": 0.6,
"BF": 22.0,
"Pitches": 88.2
},
"rates": {
"ERA": 6.0203,
"WHIP": 1.5811,
"ER_per_IP": 0.66892,
"H_per_IP": 1.21622,
"BB_per_IP": 0.36486,
"SO_per_IP": 0.81081,
"HR_per_IP": 0.12162
}
},
"season": {
"games": 30,
"totals": {
"IP": 166.2,
"ER": 68.0,
"R": 75.0,
"H": 154.0,
"BB": 45.0,
"SO": 151.0,
"HR": 23.0,
"BF": 693.0,
"Pitches": 2750.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2667,
"R": 2.5,
"H": 5.1333,
"BB": 1.5,
"SO": 5.0333,
"HR": 0.7667,
"BF": 23.1,
"Pitches": 91.6667
},
"rates": {
"ERA": 3.672,
"WHIP": 1.194,
"ER_per_IP": 0.408,
"H_per_IP": 0.924,
"BB_per_IP": 0.27,
"SO_per_IP": 0.906,
"HR_per_IP": 0.138
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.124,
"predicted_H": 5.71,
"predicted_BB": 1.875,
"predicted_SO": 4.306,
"predicted_HR": 0.399,
"predicted_ERA": 5.7332,
"predicted_WHIP": 1.5464
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.124,
"final": 3.0731,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.71,
"final": 5.0083,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.875,
"final": 2.3367,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.306,
"final": 4.5908,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.399,
"final": 0.6456,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7332,
"final": 5.7332,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5464,
"final": 1.5464,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 33,
"H": 60,
"BB": 18,
"SO": 40,
"HR": 6,
"ERA": 6.02027027027027,
"WHIP": 1.581081081081081,
"K9": 7.297297297297297,
"HR9": 1.0945945945945945,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-15T00:00:00"
},
"recent_form_boost": 1.1805212258721776,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656492",
"player_name": "Foster Griffin",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 157,
"wins": 82,
"losses": 75,
"win_pct": 0.5223,
"runs_scored": 652.0,
"runs_allowed": 649.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0191,
"avg_runs_scored": 4.1529,
"avg_runs_allowed": 4.1338,
"offense_index": 0.9269,
"defense_index": 1.0838,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1263
},
"opponent": {
"team": "BOS",
"games": 157,
"wins": 84,
"losses": 73,
"win_pct": 0.535,
"runs_scored": 680.0,
"runs_allowed": 601.0,
"run_differential": 79.0,
"run_differential_per_game": 0.5032,
"avg_runs_scored": 4.3312,
"avg_runs_allowed": 3.828,
"offense_index": 0.9668,
"defense_index": 1.1704,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 3.1,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.0565
},
"edges": {
"quality_edge": 0.0698,
"offense_edge": -0.0731,
"opponent_offense_edge": -0.0332,
"defense_strength": 0.0838,
"opponent_defense_weakness": -0.1704,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0066,
"run_prevention": 0.9828,
"strikeout": 1.0048
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656492",
"profile": {
"available": true,
"pitcher_id": "656492",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 669.0,
"k_percent": 21.8,
"bb_percent": 6.5,
"woba": 0.311,
"xwoba": 0.32,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 37.4,
"avg_best_speed": 76.2193,
"avg_hyper_speed": 94.0188,
"whiff_percent": 23.1,
"swing_percent": 48.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1118,
"command_and_miss": 0.0236,
"regression_edge": -0.2571,
"xwoba_edge": -0.2429,
"barrel_edge": -0.2889,
"hard_hit_edge": 0.0714,
"whiff_edge": -0.2857,
"bb_edge": 0.65,
"pitch_design_score": -0.2153
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656492",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 86.01981218316948,
"release_spin_rate": 2149.763694103009,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 86.01981218316948,
"release_spin_rate": 2149.763694103009,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.0198,
"release_spin_rate": 2149.7637,
"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.2153,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5375,
"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.0994,
"sample_weight": 1.0,
"run_prevention_factor": 1.0085,
"strikeout_factor": 0.988,
"walk_factor": 0.948,
"homer_factor": 1.0275,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "656492",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0085,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0085,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0275,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.988,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"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 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260923_CLE@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_CLE@BOS | home | Sonny Gray | Sonny Gray | True | 6.0 | 6.0 | 0 | 3 | 0 | -3 | 6/4 | 3/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.815950920245399,
"WHIP": 1.1595092024539877,
"IP": 163.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.821,
"recent_avg_IP": 6.067,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0628,
"sample_weight": 1.0,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.9909,
"walk_factor": 0.954,
"homer_factor": 0.9953,
"regression_flag": "neutral",
"k_percent": 22.1,
"bb_percent": 6.8,
"woba": 0.297,
"xwoba": 0.302,
"barrel_percent": 7.2,
"hard_hit_percent": 38.5,
"whiff_percent": 23.3
},
"espn_rank": {
"rank": 18,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543243",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 12.0,
"R": 12.0,
"H": 26.0,
"BB": 11.0,
"SO": 29.0,
"HR": 3.0,
"BF": 125.0,
"Pitches": 474.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.4,
"H": 5.2,
"BB": 2.2,
"SO": 5.8,
"HR": 0.6,
"BF": 25.0,
"Pitches": 94.8
},
"rates": {
"ERA": 3.5604,
"WHIP": 1.2198,
"ER_per_IP": 0.3956,
"H_per_IP": 0.85714,
"BB_per_IP": 0.36264,
"SO_per_IP": 0.95604,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.1,
"ER": 23.0,
"R": 23.0,
"H": 58.0,
"BB": 17.0,
"SO": 56.0,
"HR": 5.0,
"BF": 253.0,
"Pitches": 914.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.3,
"H": 5.8,
"BB": 1.7,
"SO": 5.6,
"HR": 0.5,
"BF": 25.3,
"Pitches": 91.4
},
"rates": {
"ERA": 3.375,
"WHIP": 1.2228,
"ER_per_IP": 0.375,
"H_per_IP": 0.94565,
"BB_per_IP": 0.27717,
"SO_per_IP": 0.91304,
"HR_per_IP": 0.08152
}
},
"season": {
"games": 28,
"totals": {
"IP": 163.0,
"ER": 51.0,
"R": 52.0,
"H": 144.0,
"BB": 45.0,
"SO": 146.0,
"HR": 16.0,
"BF": 661.0,
"Pitches": 2397.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8214,
"R": 1.8571,
"H": 5.1429,
"BB": 1.6071,
"SO": 5.2143,
"HR": 0.5714,
"BF": 23.6071,
"Pitches": 85.6071
},
"rates": {
"ERA": 2.816,
"WHIP": 1.1595,
"ER_per_IP": 0.31288,
"H_per_IP": 0.88344,
"BB_per_IP": 0.27607,
"SO_per_IP": 0.89571,
"HR_per_IP": 0.09816
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.334,
"predicted_H": 5.388,
"predicted_BB": 1.93,
"predicted_SO": 5.529,
"predicted_HR": 0.601,
"predicted_ERA": 3.5345,
"predicted_WHIP": 1.2312
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.334,
"final": 3.0237,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.388,
"final": 5.6414,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.93,
"final": 2.373,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.529,
"final": 4.896,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.601,
"final": 0.3522,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5345,
"final": 3.5345,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2312,
"final": 1.2312,
"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": 61.1,
"ER": 23,
"H": 58,
"BB": 17,
"SO": 56,
"HR": 5,
"ERA": 3.3750000000000004,
"WHIP": 1.2228260869565217,
"K9": 8.217391304347826,
"HR9": 0.7336956521739131,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 0.8739719456136583,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543243",
"player_name": "Sonny Gray",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 157,
"wins": 84,
"losses": 73,
"win_pct": 0.535,
"runs_scored": 680.0,
"runs_allowed": 601.0,
"run_differential": 79.0,
"run_differential_per_game": 0.5032,
"avg_runs_scored": 4.3312,
"avg_runs_allowed": 3.828,
"offense_index": 0.9668,
"defense_index": 1.1704,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 3.1,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.0565
},
"opponent": {
"team": "CLE",
"games": 157,
"wins": 82,
"losses": 75,
"win_pct": 0.5223,
"runs_scored": 652.0,
"runs_allowed": 649.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0191,
"avg_runs_scored": 4.1529,
"avg_runs_allowed": 4.1338,
"offense_index": 0.9269,
"defense_index": 1.0838,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1263
},
"edges": {
"quality_edge": -0.0698,
"offense_edge": -0.0332,
"opponent_offense_edge": -0.0731,
"defense_strength": 0.1704,
"opponent_defense_weakness": -0.0838,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 1.0052,
"run_prevention": 0.9748,
"strikeout": 1.0038
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543243",
"profile": {
"available": true,
"pitcher_id": "543243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 631.0,
"k_percent": 22.1,
"bb_percent": 6.8,
"woba": 0.297,
"xwoba": 0.302,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 38.5,
"avg_best_speed": 78.9436,
"avg_hyper_speed": 93.9353,
"whiff_percent": 23.3,
"swing_percent": 47.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1398,
"command_and_miss": 0.0379,
"regression_edge": -0.1429,
"xwoba_edge": 0.2714,
"barrel_edge": 0.0,
"hard_hit_edge": -0.0857,
"whiff_edge": -0.2571,
"bb_edge": 0.575,
"pitch_design_score": -0.1376
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543243",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 87.40671359710561,
"release_spin_rate": 2505.690298803869,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 87.40671359710561,
"release_spin_rate": 2505.690298803869,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4067,
"release_spin_rate": 2505.6903,
"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.1376,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9828,
"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.0628,
"sample_weight": 1.0,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.9909,
"walk_factor": 0.954,
"homer_factor": 0.9953,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543243",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9947,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9947,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9953,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9909,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 118,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260923_CLE@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_HOU@SEA | away | Ethan Pecko | Ethan Pecko | True | 5.0 | 2.2 | -7 | 0 | 3 | 3 | 4/4 | 2/2 | 8/2 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 3.7674418604651163,
"WHIP": 1.1162790697674418,
"IP": 28.2,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1851,
"sample_weight": 0.45,
"run_prevention_factor": 1.0157,
"strikeout_factor": 0.9784,
"walk_factor": 1.0108,
"homer_factor": 1.0317,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.4,
"bb_percent": 10.3,
"woba": 0.301,
"xwoba": 0.335,
"barrel_percent": 9.8,
"hard_hit_percent": 38.6,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 292,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 28.2,
"season_ERA": 3.767,
"season_WHIP": 1.116,
"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.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "814490",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 10.0,
"R": 11.0,
"H": 17.0,
"BB": 9.0,
"SO": 15.0,
"HR": 5.0,
"BF": 98.0,
"Pitches": 398.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.2,
"H": 3.4,
"BB": 1.8,
"SO": 3.0,
"HR": 1.0,
"BF": 19.6,
"Pitches": 79.6
},
"rates": {
"ERA": 3.6,
"WHIP": 1.04,
"ER_per_IP": 0.4,
"H_per_IP": 0.68,
"BB_per_IP": 0.36,
"SO_per_IP": 0.6,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 28.2,
"ER": 12.0,
"R": 13.0,
"H": 20.0,
"BB": 12.0,
"SO": 19.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 487.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.1667,
"H": 3.3333,
"BB": 2.0,
"SO": 3.1667,
"HR": 0.8333,
"BF": 19.3333,
"Pitches": 81.1667
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.1163,
"ER_per_IP": 0.4186,
"H_per_IP": 0.69767,
"BB_per_IP": 0.4186,
"SO_per_IP": 0.66279,
"HR_per_IP": 0.17442
}
},
"season": {
"games": 6,
"totals": {
"IP": 28.2,
"ER": 12.0,
"R": 13.0,
"H": 20.0,
"BB": 12.0,
"SO": 19.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 487.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.1667,
"H": 3.3333,
"BB": 2.0,
"SO": 3.1667,
"HR": 0.8333,
"BF": 19.3333,
"Pitches": 81.1667
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.1163,
"ER_per_IP": 0.4186,
"H_per_IP": 0.69767,
"BB_per_IP": 0.4186,
"SO_per_IP": 0.66279,
"HR_per_IP": 0.17442
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.245,
"predicted_H": 4.069,
"predicted_BB": 1.85,
"predicted_SO": 3.771,
"predicted_HR": 0.869,
"predicted_ERA": 4.0608,
"predicted_WHIP": 1.1896
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.245,
"final": 1.0282,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.069,
"final": 4.0316,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.85,
"final": 1.9313,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 3.771,
"final": 6.0632,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.869,
"final": 0.398,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0608,
"final": 4.0608,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1896,
"final": 1.1896,
"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": 28.2,
"ER": 12,
"H": 20,
"BB": 12,
"SO": 19,
"HR": 5,
"ERA": 3.7674418604651163,
"WHIP": 1.1162790697674418,
"K9": 5.965116279069767,
"HR9": 1.569767441860465,
"games_pitched": 6,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 0.9197564002165157,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
},
{
"step": "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": 0,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "814490",
"player_name": "Ethan Pecko",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": {}
},
{
"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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 157,
"wins": 78,
"losses": 79,
"win_pct": 0.4968,
"runs_scored": 695.0,
"runs_allowed": 747.0,
"run_differential": -52.0,
"run_differential_per_game": -0.3312,
"avg_runs_scored": 4.4268,
"avg_runs_allowed": 4.758,
"offense_index": 0.9869,
"defense_index": 0.9427,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.5,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1133
},
"opponent": {
"team": "SEA",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 634.0,
"runs_allowed": 697.0,
"run_differential": -63.0,
"run_differential_per_game": -0.4013,
"avg_runs_scored": 4.0382,
"avg_runs_allowed": 4.4395,
"offense_index": 0.9003,
"defense_index": 1.0103,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.2,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.114
},
"edges": {
"quality_edge": 0.0007,
"offense_edge": -0.0131,
"opponent_offense_edge": -0.0997,
"defense_strength": -0.0573,
"opponent_defense_weakness": -0.0103,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0023,
"run_prevention": 0.9897,
"strikeout": 1.008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "814490",
"profile": {
"available": true,
"pitcher_id": "814490",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 95.0,
"k_percent": 16.4,
"bb_percent": 10.3,
"woba": 0.301,
"xwoba": 0.335,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 38.6,
"avg_best_speed": 78.46,
"avg_hyper_speed": 94.301,
"whiff_percent": 22.2,
"swing_percent": 45.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2937,
"command_and_miss": -0.5586,
"regression_edge": -0.9714,
"xwoba_edge": -0.6714,
"barrel_edge": -0.5778,
"hard_hit_edge": -0.1,
"whiff_edge": -0.4143,
"bb_edge": -0.3,
"pitch_design_score": -0.0555
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "814490",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 88.87197185297008,
"release_spin_rate": 2284.8833648498585,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 88.87197185297008,
"release_spin_rate": 2284.8833648498585,
"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.872,
"release_spin_rate": 2284.8834,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0555,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3967,
"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.1851,
"sample_weight": 0.45,
"run_prevention_factor": 1.0157,
"strikeout_factor": 0.9784,
"walk_factor": 1.0108,
"homer_factor": 1.0317,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "814490",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0071,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0071,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0049,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0143,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9903,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260923_HOU@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_HOU@SEA | home | George Kirby | George Kirby | True | 6.0 | 5.0 | -3 | 2 | 4 | 2 | 6/6 | 1/3 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.243614931237722,
"WHIP": 1.3850687622789786,
"IP": 169.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.851,
"recent_avg_IP": 5.933,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0543,
"sample_weight": 1.0,
"run_prevention_factor": 1.0046,
"strikeout_factor": 0.9731,
"walk_factor": 0.94,
"homer_factor": 1.0043,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 6.1,
"woba": 0.338,
"xwoba": 0.315,
"barrel_percent": 6.6,
"hard_hit_percent": 40.0,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 125,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669923",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 15.0,
"R": 16.0,
"H": 34.0,
"BB": 11.0,
"SO": 26.0,
"HR": 4.0,
"BF": 131.0,
"Pitches": 472.0
},
"per_game": {
"IP": 6.0,
"ER": 3.0,
"R": 3.2,
"H": 6.8,
"BB": 2.2,
"SO": 5.2,
"HR": 0.8,
"BF": 26.2,
"Pitches": 94.4
},
"rates": {
"ERA": 4.5506,
"WHIP": 1.5169,
"ER_per_IP": 0.50562,
"H_per_IP": 1.14607,
"BB_per_IP": 0.37079,
"SO_per_IP": 0.8764,
"HR_per_IP": 0.13483
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 34.0,
"R": 35.0,
"H": 67.0,
"BB": 19.0,
"SO": 39.0,
"HR": 10.0,
"BF": 241.0,
"Pitches": 914.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.5,
"H": 6.7,
"BB": 1.9,
"SO": 3.9,
"HR": 1.0,
"BF": 24.1,
"Pitches": 91.4
},
"rates": {
"ERA": 5.7019,
"WHIP": 1.6025,
"ER_per_IP": 0.63354,
"H_per_IP": 1.24845,
"BB_per_IP": 0.35404,
"SO_per_IP": 0.72671,
"HR_per_IP": 0.18634
}
},
"season": {
"games": 29,
"totals": {
"IP": 169.2,
"ER": 80.0,
"R": 85.0,
"H": 191.0,
"BB": 44.0,
"SO": 143.0,
"HR": 21.0,
"BF": 718.0,
"Pitches": 2662.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7586,
"R": 2.931,
"H": 6.5862,
"BB": 1.5172,
"SO": 4.931,
"HR": 0.7241,
"BF": 24.7586,
"Pitches": 91.7931
},
"rates": {
"ERA": 4.2436,
"WHIP": 1.3851,
"ER_per_IP": 0.47151,
"H_per_IP": 1.12574,
"BB_per_IP": 0.25933,
"SO_per_IP": 0.84283,
"HR_per_IP": 0.12377
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.124,
"predicted_H": 6.664,
"predicted_BB": 2.017,
"predicted_SO": 4.844,
"predicted_HR": 0.872,
"predicted_ERA": 4.8472,
"predicted_WHIP": 1.4964
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.124,
"final": 2.6607,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 6.664,
"final": 6.3903,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.017,
"final": 1.5978,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.844,
"final": 4.9083,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.872,
"final": 0.9248,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8472,
"final": 4.8472,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4964,
"final": 1.4964,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 34,
"H": 67,
"BB": 19,
"SO": 39,
"HR": 10,
"ERA": 5.7018633540372665,
"WHIP": 1.6024844720496894,
"K9": 6.540372670807453,
"HR9": 1.6770186335403725,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.14523553257018,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669923",
"player_name": "George Kirby",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 157,
"wins": 73,
"losses": 84,
"win_pct": 0.465,
"runs_scored": 634.0,
"runs_allowed": 697.0,
"run_differential": -63.0,
"run_differential_per_game": -0.4013,
"avg_runs_scored": 4.0382,
"avg_runs_allowed": 4.4395,
"offense_index": 0.9003,
"defense_index": 1.0103,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.2,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.114
},
"opponent": {
"team": "HOU",
"games": 157,
"wins": 78,
"losses": 79,
"win_pct": 0.4968,
"runs_scored": 695.0,
"runs_allowed": 747.0,
"run_differential": -52.0,
"run_differential_per_game": -0.3312,
"avg_runs_scored": 4.4268,
"avg_runs_allowed": 4.758,
"offense_index": 0.9869,
"defense_index": 0.9427,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.5,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1133
},
"edges": {
"quality_edge": -0.0007,
"offense_edge": -0.0997,
"opponent_offense_edge": -0.0131,
"defense_strength": 0.0103,
"opponent_defense_weakness": 0.0573,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0008,
"run_prevention": 0.9969,
"strikeout": 1.001
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669923",
"profile": {
"available": true,
"pitcher_id": "669923",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 691.0,
"k_percent": 19.9,
"bb_percent": 6.1,
"woba": 0.338,
"xwoba": 0.315,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 40.0,
"avg_best_speed": 79.17,
"avg_hyper_speed": 94.1506,
"whiff_percent": 22.4,
"swing_percent": 51.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1784,
"command_and_miss": -0.1136,
"regression_edge": 0.6571,
"xwoba_edge": -0.1,
"barrel_edge": 0.1333,
"hard_hit_edge": -0.3,
"whiff_edge": -0.3857,
"bb_edge": 0.75,
"pitch_design_score": 0.1179
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669923",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 91.96952767159299,
"release_spin_rate": 2257.4159200004274,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 91.96952767159299,
"release_spin_rate": 2257.4159200004274,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.9695,
"release_spin_rate": 2257.4159,
"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.1179,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8423,
"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.0543,
"sample_weight": 1.0,
"run_prevention_factor": 1.0046,
"strikeout_factor": 0.9731,
"walk_factor": 0.94,
"homer_factor": 1.0043,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669923",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0046,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0046,
"adjusted": 7
},
"predicted_BB": {
"original": 2.0,
"factor": 0.94,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0043,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9731,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260923_HOU@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_LAA@OAK | away | Walbert Ureña | Walbert Ureña | True | 6.0 | 4.0 | -6 | 3 | 5 | 2 | 3/7 | 4/1 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.74364896073903,
"WHIP": 1.20554272517321,
"IP": 144.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.487,
"recent_avg_IP": 6.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4603,
"sample_weight": 1.0,
"run_prevention_factor": 0.9609,
"strikeout_factor": 1.0223,
"walk_factor": 1.04,
"homer_factor": 0.9287,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 11.1,
"woba": 0.274,
"xwoba": 0.281,
"barrel_percent": 5.4,
"hard_hit_percent": 35.6,
"whiff_percent": 27.8
},
"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": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700712",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 9.0,
"R": 9.0,
"H": 26.0,
"BB": 8.0,
"SO": 31.0,
"HR": 2.0,
"BF": 126.0,
"Pitches": 464.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 5.2,
"BB": 1.6,
"SO": 6.2,
"HR": 0.4,
"BF": 25.2,
"Pitches": 92.8
},
"rates": {
"ERA": 2.5579,
"WHIP": 1.0737,
"ER_per_IP": 0.28421,
"H_per_IP": 0.82105,
"BB_per_IP": 0.25263,
"SO_per_IP": 0.97895,
"HR_per_IP": 0.06316
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 17.0,
"R": 17.0,
"H": 40.0,
"BB": 20.0,
"SO": 57.0,
"HR": 4.0,
"BF": 227.0,
"Pitches": 889.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7,
"R": 1.7,
"H": 4.0,
"BB": 2.0,
"SO": 5.7,
"HR": 0.4,
"BF": 22.7,
"Pitches": 88.9
},
"rates": {
"ERA": 2.6842,
"WHIP": 1.0526,
"ER_per_IP": 0.29825,
"H_per_IP": 0.70175,
"BB_per_IP": 0.35088,
"SO_per_IP": 1.0,
"HR_per_IP": 0.07018
}
},
"season": {
"games": 28,
"totals": {
"IP": 144.1,
"ER": 44.0,
"R": 51.0,
"H": 107.0,
"BB": 67.0,
"SO": 140.0,
"HR": 9.0,
"BF": 605.0,
"Pitches": 2400.0
},
"per_game": {
"IP": 5.0,
"ER": 1.5714,
"R": 1.8214,
"H": 3.8214,
"BB": 2.3929,
"SO": 5.0,
"HR": 0.3214,
"BF": 21.6071,
"Pitches": 85.7143
},
"rates": {
"ERA": 2.7436,
"WHIP": 1.2055,
"ER_per_IP": 0.30485,
"H_per_IP": 0.74134,
"BB_per_IP": 0.4642,
"SO_per_IP": 0.96998,
"HR_per_IP": 0.06236
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.91,
"predicted_H": 4.665,
"predicted_BB": 1.971,
"predicted_SO": 5.726,
"predicted_HR": 0.457,
"predicted_ERA": 2.9343,
"predicted_WHIP": 1.1327
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.91,
"final": 2.3613,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.665,
"final": 3.9757,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.971,
"final": 2.811,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.726,
"final": 5.0114,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.457,
"final": 0.2678,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9343,
"final": 2.9343,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1327,
"final": 1.1327,
"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": 17,
"H": 40,
"BB": 20,
"SO": 57,
"HR": 4,
"ERA": 2.6842105263157894,
"WHIP": 1.0526315789473684,
"K9": 9.0,
"HR9": 0.631578947368421,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 0.7920032671239557,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700712",
"player_name": "Walbert Ure\u00f1a",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 157,
"wins": 60,
"losses": 97,
"win_pct": 0.3822,
"runs_scored": 632.0,
"runs_allowed": 721.0,
"run_differential": -89.0,
"run_differential_per_game": -0.5669,
"avg_runs_scored": 4.0255,
"avg_runs_allowed": 4.5924,
"offense_index": 0.8975,
"defense_index": 0.9767,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.2046
},
"opponent": {
"team": "OAK",
"games": 157,
"wins": 62,
"losses": 95,
"win_pct": 0.3949,
"runs_scored": 679.0,
"runs_allowed": 900.0,
"run_differential": -221.0,
"run_differential_per_game": -1.4076,
"avg_runs_scored": 4.3248,
"avg_runs_allowed": 5.7325,
"offense_index": 0.9642,
"defense_index": 0.7825,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 7.2,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.3319
},
"edges": {
"quality_edge": 0.1273,
"offense_edge": -0.1025,
"opponent_offense_edge": -0.0358,
"defense_strength": -0.0233,
"opponent_defense_weakness": 0.2175,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0058,
"run_prevention": 0.9902,
"strikeout": 1.0067
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700712",
"profile": {
"available": true,
"pitcher_id": "700712",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 576.0,
"k_percent": 23.1,
"bb_percent": 11.1,
"woba": 0.274,
"xwoba": 0.281,
"sweet_spot_percent": 26.4,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 35.6,
"avg_best_speed": 75.0987,
"avg_hyper_speed": 93.6179,
"whiff_percent": 27.8,
"swing_percent": 46.7
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7718,
"command_and_miss": 0.1121,
"regression_edge": -0.2,
"xwoba_edge": 0.8714,
"barrel_edge": 0.4,
"hard_hit_edge": 0.3286,
"whiff_edge": 0.3857,
"bb_edge": -0.5,
"pitch_design_score": 0.2362
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700712",
"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": 94.08088078222924,
"release_spin_rate": 2099.1825547544627,
"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": 94.08088078222924,
"release_spin_rate": 2099.1825547544627,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.0809,
"release_spin_rate": 2099.1826,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2362,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.6869,
"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.4603,
"sample_weight": 1.0,
"run_prevention_factor": 0.9609,
"strikeout_factor": 1.0223,
"walk_factor": 1.04,
"homer_factor": 0.9287,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "700712",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9609,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9609,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.04,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9287,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0223,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 113,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "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."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260923_LAA@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_LAA@OAK | home | Jeffrey Springs | Jeffrey Springs | True | 4.2 | 4.1 | -1 | 4 | 3 | -1 | 8/5 | 1/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.180722891566265,
"WHIP": 1.4674698795180723,
"IP": 138.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.94,
"recent_avg_IP": 4.933,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3188,
"sample_weight": 1.0,
"run_prevention_factor": 1.0271,
"strikeout_factor": 0.9634,
"walk_factor": 1.002,
"homer_factor": 1.0345,
"regression_flag": "positive_pitcher_regression",
"k_percent": 17.8,
"bb_percent": 9.2,
"woba": 0.366,
"xwoba": 0.335,
"barrel_percent": 9.1,
"hard_hit_percent": 34.5,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 804,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605488",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 9.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 19.0,
"R": 19.0,
"H": 26.0,
"BB": 9.0,
"SO": 20.0,
"HR": 4.0,
"BF": 108.0,
"Pitches": 420.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 3.8,
"H": 5.2,
"BB": 1.8,
"SO": 4.0,
"HR": 0.8,
"BF": 21.6,
"Pitches": 84.0
},
"rates": {
"ERA": 6.9324,
"WHIP": 1.4189,
"ER_per_IP": 0.77027,
"H_per_IP": 1.05405,
"BB_per_IP": 0.36486,
"SO_per_IP": 0.81081,
"HR_per_IP": 0.16216
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 35.0,
"R": 36.0,
"H": 51.0,
"BB": 23.0,
"SO": 29.0,
"HR": 9.0,
"BF": 205.0,
"Pitches": 797.0
},
"per_game": {
"IP": 4.2,
"ER": 3.5,
"R": 3.6,
"H": 5.1,
"BB": 2.3,
"SO": 2.9,
"HR": 0.9,
"BF": 20.5,
"Pitches": 79.7
},
"rates": {
"ERA": 7.0,
"WHIP": 1.6444,
"ER_per_IP": 0.77778,
"H_per_IP": 1.13333,
"BB_per_IP": 0.51111,
"SO_per_IP": 0.64444,
"HR_per_IP": 0.2
}
},
"season": {
"games": 28,
"totals": {
"IP": 138.1,
"ER": 95.0,
"R": 102.0,
"H": 147.0,
"BB": 56.0,
"SO": 109.0,
"HR": 33.0,
"BF": 612.0,
"Pitches": 2380.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3929,
"R": 3.6429,
"H": 5.25,
"BB": 2.0,
"SO": 3.8929,
"HR": 1.1786,
"BF": 21.8571,
"Pitches": 85.0
},
"rates": {
"ERA": 6.1807,
"WHIP": 1.4675,
"ER_per_IP": 0.68675,
"H_per_IP": 1.06265,
"BB_per_IP": 0.40482,
"SO_per_IP": 0.78795,
"HR_per_IP": 0.23855
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.959,
"predicted_H": 5.881,
"predicted_BB": 2.296,
"predicted_SO": 4.277,
"predicted_HR": 1.015,
"predicted_ERA": 6.4696,
"predicted_WHIP": 1.4847
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 9.0,
"form": 5.2,
"final": 7.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.959,
"final": 3.562,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.881,
"final": 6.7583,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.296,
"final": 1.7594,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.277,
"final": 4.9903,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.015,
"final": 1.0088,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.4696,
"final": 6.4696,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4847,
"final": 1.4847,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 35,
"H": 51,
"BB": 23,
"SO": 29,
"HR": 9,
"ERA": 6.999999999999999,
"WHIP": 1.6444444444444442,
"K9": 5.799999999999999,
"HR9": 1.7999999999999998,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 1.292324904550856,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 9.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 4,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605488",
"player_name": "Jeffrey Springs",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 9.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 9.0,
"after": 4.2,
"delta": -4.8,
"percent_delta": -0.5333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 9.0,
"after": 4.2,
"delta": -4.8,
"percent_delta": -0.5333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 9.0,
"after": 4.2,
"delta": -4.8,
"percent_delta": -0.5333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 9.0,
"after": 4.2,
"delta": -4.8,
"percent_delta": -0.5333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 157,
"wins": 62,
"losses": 95,
"win_pct": 0.3949,
"runs_scored": 679.0,
"runs_allowed": 900.0,
"run_differential": -221.0,
"run_differential_per_game": -1.4076,
"avg_runs_scored": 4.3248,
"avg_runs_allowed": 5.7325,
"offense_index": 0.9642,
"defense_index": 0.7825,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 7.2,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.3319
},
"opponent": {
"team": "LAA",
"games": 157,
"wins": 60,
"losses": 97,
"win_pct": 0.3822,
"runs_scored": 632.0,
"runs_allowed": 721.0,
"run_differential": -89.0,
"run_differential_per_game": -0.5669,
"avg_runs_scored": 4.0255,
"avg_runs_allowed": 4.5924,
"offense_index": 0.8975,
"defense_index": 0.9767,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.2046
},
"edges": {
"quality_edge": -0.1273,
"offense_edge": -0.0358,
"opponent_offense_edge": -0.1025,
"defense_strength": -0.2175,
"opponent_defense_weakness": 0.0233,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9925,
"run_prevention": 1.0117,
"strikeout": 1.0044
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605488",
"profile": {
"available": true,
"pitcher_id": "605488",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 584.0,
"k_percent": 17.8,
"bb_percent": 9.2,
"woba": 0.366,
"xwoba": 0.335,
"sweet_spot_percent": 35.9,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 34.5,
"avg_best_speed": 76.1724,
"avg_hyper_speed": 93.3919,
"whiff_percent": 22.8,
"swing_percent": 46.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5174,
"command_and_miss": -0.3836,
"regression_edge": 0.8857,
"xwoba_edge": -0.6714,
"barrel_edge": -0.4222,
"hard_hit_edge": 0.4857,
"whiff_edge": -0.3286,
"bb_edge": -0.025,
"pitch_design_score": -0.2235
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605488",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 85.8733346846715,
"release_spin_rate": 1993.49048040678,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 85.8733346846715,
"release_spin_rate": 1993.49048040678,
"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.8733,
"release_spin_rate": 1993.4905,
"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.2235,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5961,
"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.3188,
"sample_weight": 1.0,
"run_prevention_factor": 1.0271,
"strikeout_factor": 0.9634,
"walk_factor": 1.002,
"homer_factor": 1.0345,
"woba_minus_xwoba": 0.031,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "605488",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0271,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0271,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0345,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9634,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260923_LAA@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_MIA@CHC | away | Ryan Gusto | Ryan Gusto | True | 4.2 | 5.1 | 2 | 4 | 2 | -2 | 3/6 | 3/2 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.137096774193548,
"WHIP": 1.439516129032258,
"IP": 82.2,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 4.314,
"recent_avg_IP": 5.0,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4561,
"sample_weight": 1.0,
"run_prevention_factor": 1.0388,
"strikeout_factor": 0.956,
"walk_factor": 0.958,
"homer_factor": 1.0835,
"regression_flag": "neutral",
"k_percent": 18.7,
"bb_percent": 7.0,
"woba": 0.34,
"xwoba": 0.339,
"barrel_percent": 8.9,
"hard_hit_percent": 43.1,
"whiff_percent": 20.6
},
"espn_rank": {
"rank": 208,
"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": "687473",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 10.0,
"R": 10.0,
"H": 31.0,
"BB": 11.0,
"SO": 18.0,
"HR": 3.0,
"BF": 114.0,
"Pitches": 433.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 6.2,
"BB": 2.2,
"SO": 3.6,
"HR": 0.6,
"BF": 22.8,
"Pitches": 86.6
},
"rates": {
"ERA": 3.6,
"WHIP": 1.68,
"ER_per_IP": 0.4,
"H_per_IP": 1.24,
"BB_per_IP": 0.44,
"SO_per_IP": 0.72,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 21.0,
"R": 23.0,
"H": 59.0,
"BB": 15.0,
"SO": 38.0,
"HR": 8.0,
"BF": 218.0,
"Pitches": 787.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.3,
"H": 5.9,
"BB": 1.5,
"SO": 3.8,
"HR": 0.8,
"BF": 21.8,
"Pitches": 78.7
},
"rates": {
"ERA": 3.8836,
"WHIP": 1.5205,
"ER_per_IP": 0.43151,
"H_per_IP": 1.21233,
"BB_per_IP": 0.30822,
"SO_per_IP": 0.78082,
"HR_per_IP": 0.16438
}
},
"season": {
"games": 22,
"totals": {
"IP": 82.2,
"ER": 38.0,
"R": 41.0,
"H": 93.0,
"BB": 26.0,
"SO": 69.0,
"HR": 11.0,
"BF": 369.0,
"Pitches": 1353.0
},
"per_game": {
"IP": 3.2,
"ER": 1.7273,
"R": 1.8636,
"H": 4.2273,
"BB": 1.1818,
"SO": 3.1364,
"HR": 0.5,
"BF": 16.7727,
"Pitches": 61.5
},
"rates": {
"ERA": 4.1371,
"WHIP": 1.4395,
"ER_per_IP": 0.45968,
"H_per_IP": 1.125,
"BB_per_IP": 0.31452,
"SO_per_IP": 0.83468,
"HR_per_IP": 0.13306
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.073,
"predicted_H": 5.501,
"predicted_BB": 1.748,
"predicted_SO": 3.759,
"predicted_HR": 0.661,
"predicted_ERA": 3.9512,
"predicted_WHIP": 1.5355
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.073,
"final": 2.47,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.501,
"final": 4.43,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.748,
"final": 2.2842,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.759,
"final": 2.5775,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.661,
"final": 0.8062,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9512,
"final": 3.9512,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5355,
"final": 1.5355,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.2,
"ER": 21,
"H": 59,
"BB": 15,
"SO": 38,
"HR": 8,
"ERA": 3.883561643835616,
"WHIP": 1.5205479452054793,
"K9": 7.027397260273972,
"HR9": 1.4794520547945205,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9386281770013889,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687473",
"player_name": "Ryan Gusto",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 157,
"wins": 77,
"losses": 80,
"win_pct": 0.4904,
"runs_scored": 700.0,
"runs_allowed": 697.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0191,
"avg_runs_scored": 4.4586,
"avg_runs_allowed": 4.4395,
"offense_index": 0.9952,
"defense_index": 1.0092,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.0,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0058
},
"opponent": {
"team": "CHC",
"games": 157,
"wins": 87,
"losses": 70,
"win_pct": 0.5541,
"runs_scored": 837.0,
"runs_allowed": 691.0,
"run_differential": 146.0,
"run_differential_per_game": 0.9299,
"avg_runs_scored": 5.3312,
"avg_runs_allowed": 4.4013,
"offense_index": 1.19,
"defense_index": 1.0179,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.9,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1951
},
"edges": {
"quality_edge": -0.2009,
"offense_edge": -0.0048,
"opponent_offense_edge": 0.19,
"defense_strength": 0.0092,
"opponent_defense_weakness": -0.0179,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9846,
"run_prevention": 1.0395,
"strikeout": 0.9788
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687473",
"profile": {
"available": true,
"pitcher_id": "687473",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 346.0,
"k_percent": 18.7,
"bb_percent": 7.0,
"woba": 0.34,
"xwoba": 0.339,
"sweet_spot_percent": 38.7,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 43.1,
"avg_best_speed": 79.5277,
"avg_hyper_speed": 94.2775,
"whiff_percent": 20.6,
"swing_percent": 49.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6607,
"command_and_miss": -0.3257,
"regression_edge": 0.0286,
"xwoba_edge": -0.7857,
"barrel_edge": -0.3778,
"hard_hit_edge": -0.7429,
"whiff_edge": -0.6429,
"bb_edge": 0.525,
"pitch_design_score": -0.0538
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687473",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 88.90337160517102,
"release_spin_rate": 2251.003319274584,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 88.90337160517102,
"release_spin_rate": 2251.003319274584,
"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.9034,
"release_spin_rate": 2251.0033,
"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.0538,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3841,
"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.4561,
"sample_weight": 1.0,
"run_prevention_factor": 1.0388,
"strikeout_factor": 0.956,
"walk_factor": 0.958,
"homer_factor": 1.0835,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687473",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0388,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0388,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.958,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0835,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.956,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260923_MIA@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_MIA@CHC | home | Kevin Gausman | Kevin Gausman | True | 5.2 | 5.2 | 0 | 2 | 2 | 0 | 4/6 | 0/1 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.5523255813953485,
"WHIP": 1.2732558139534884,
"IP": 172.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.548,
"recent_avg_IP": 5.733,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1363,
"sample_weight": 1.0,
"run_prevention_factor": 0.9884,
"strikeout_factor": 1.0263,
"walk_factor": 0.944,
"homer_factor": 1.0133,
"regression_flag": "neutral",
"k_percent": 24.3,
"bb_percent": 6.3,
"woba": 0.315,
"xwoba": 0.308,
"barrel_percent": 7.6,
"hard_hit_percent": 39.5,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 183,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592332",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 14.0,
"R": 15.0,
"H": 27.0,
"BB": 6.0,
"SO": 34.0,
"HR": 7.0,
"BF": 119.0,
"Pitches": 487.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 3.0,
"H": 5.4,
"BB": 1.2,
"SO": 6.8,
"HR": 1.4,
"BF": 23.8,
"Pitches": 97.4
},
"rates": {
"ERA": 4.3953,
"WHIP": 1.1512,
"ER_per_IP": 0.48837,
"H_per_IP": 0.94186,
"BB_per_IP": 0.2093,
"SO_per_IP": 1.18605,
"HR_per_IP": 0.24419
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 29.0,
"R": 30.0,
"H": 59.0,
"BB": 12.0,
"SO": 60.0,
"HR": 10.0,
"BF": 237.0,
"Pitches": 954.0
},
"per_game": {
"IP": 5.2,
"ER": 2.9,
"R": 3.0,
"H": 5.9,
"BB": 1.2,
"SO": 6.0,
"HR": 1.0,
"BF": 23.7,
"Pitches": 95.4
},
"rates": {
"ERA": 4.6331,
"WHIP": 1.2604,
"ER_per_IP": 0.51479,
"H_per_IP": 1.04734,
"BB_per_IP": 0.21302,
"SO_per_IP": 1.06509,
"HR_per_IP": 0.17751
}
},
"season": {
"games": 31,
"totals": {
"IP": 172.0,
"ER": 87.0,
"R": 94.0,
"H": 173.0,
"BB": 46.0,
"SO": 177.0,
"HR": 25.0,
"BF": 728.0,
"Pitches": 2902.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8065,
"R": 3.0323,
"H": 5.5806,
"BB": 1.4839,
"SO": 5.7097,
"HR": 0.8065,
"BF": 23.4839,
"Pitches": 93.6129
},
"rates": {
"ERA": 4.5523,
"WHIP": 1.2733,
"ER_per_IP": 0.50581,
"H_per_IP": 1.00581,
"BB_per_IP": 0.26744,
"SO_per_IP": 1.02907,
"HR_per_IP": 0.14535
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.846,
"predicted_H": 5.61,
"predicted_BB": 1.381,
"predicted_SO": 6.165,
"predicted_HR": 1.098,
"predicted_ERA": 4.5206,
"predicted_WHIP": 1.2337
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.846,
"final": 2.5003,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.61,
"final": 4.952,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.381,
"final": 0.8166,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.165,
"final": 5.6889,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.098,
"final": 1.0579,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5206,
"final": 4.5206,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2337,
"final": 1.2337,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 29,
"H": 59,
"BB": 12,
"SO": 60,
"HR": 10,
"ERA": 4.633136094674556,
"WHIP": 1.2603550295857988,
"K9": 9.585798816568047,
"HR9": 1.5976331360946745,
"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-15T00:00:00"
},
"recent_form_boost": 1.0164504798302776,
"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": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592332",
"player_name": "Kevin Gausman",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 157,
"wins": 87,
"losses": 70,
"win_pct": 0.5541,
"runs_scored": 837.0,
"runs_allowed": 691.0,
"run_differential": 146.0,
"run_differential_per_game": 0.9299,
"avg_runs_scored": 5.3312,
"avg_runs_allowed": 4.4013,
"offense_index": 1.19,
"defense_index": 1.0179,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.9,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1951
},
"opponent": {
"team": "MIA",
"games": 157,
"wins": 77,
"losses": 80,
"win_pct": 0.4904,
"runs_scored": 700.0,
"runs_allowed": 697.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0191,
"avg_runs_scored": 4.4586,
"avg_runs_allowed": 4.4395,
"offense_index": 0.9952,
"defense_index": 1.0092,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.0,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0058
},
"edges": {
"quality_edge": 0.2009,
"offense_edge": 0.19,
"opponent_offense_edge": -0.0048,
"defense_strength": 0.0179,
"opponent_defense_weakness": -0.0092,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0088,
"run_prevention": 0.9874,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592332",
"profile": {
"available": true,
"pitcher_id": "592332",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 698.0,
"k_percent": 24.3,
"bb_percent": 6.3,
"woba": 0.315,
"xwoba": 0.308,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 39.5,
"avg_best_speed": 76.9024,
"avg_hyper_speed": 94.4387,
"whiff_percent": 27.3,
"swing_percent": 50.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0263,
"command_and_miss": 0.4043,
"regression_edge": 0.2,
"xwoba_edge": 0.1,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.2286,
"whiff_edge": 0.3143,
"bb_edge": 0.7,
"pitch_design_score": -0.044
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592332",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.07749610166415,
"release_spin_rate": 2007.4215713814062,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.07749610166415,
"release_spin_rate": 2007.4215713814062,
"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.0775,
"release_spin_rate": 2007.4216,
"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.044,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3145,
"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.1363,
"sample_weight": 1.0,
"run_prevention_factor": 0.9884,
"strikeout_factor": 1.0263,
"walk_factor": 0.944,
"homer_factor": 1.0133,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592332",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9884,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9884,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0133,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0263,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260923_MIA@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_MIL@PHI | away | Logan Henderson | Logan Henderson | True | 6.0 | 5.0 | -3 | 3 | 1 | -2 | 2/4 | 2/3 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.507142857142857,
"WHIP": 0.8142857142857143,
"IP": 93.1,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.49,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6895,
"sample_weight": 1.0,
"run_prevention_factor": 0.9414,
"strikeout_factor": 1.0611,
"walk_factor": 0.91,
"homer_factor": 0.9852,
"regression_flag": "neutral",
"k_percent": 30.7,
"bb_percent": 4.6,
"woba": 0.249,
"xwoba": 0.257,
"barrel_percent": 8.9,
"hard_hit_percent": 38.2,
"whiff_percent": 27.0
},
"espn_rank": {
"rank": 34,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 93.1,
"season_ERA": 2.507,
"season_WHIP": 0.814,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "701656",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 7.0,
"R": 8.0,
"H": 17.0,
"BB": 4.0,
"SO": 32.0,
"HR": 4.0,
"BF": 109.0,
"Pitches": 475.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.6,
"H": 3.4,
"BB": 0.8,
"SO": 6.4,
"HR": 0.8,
"BF": 21.8,
"Pitches": 95.0
},
"rates": {
"ERA": 2.1,
"WHIP": 0.7,
"ER_per_IP": 0.23333,
"H_per_IP": 0.56667,
"BB_per_IP": 0.13333,
"SO_per_IP": 1.06667,
"HR_per_IP": 0.13333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 15.0,
"R": 16.0,
"H": 36.0,
"BB": 9.0,
"SO": 69.0,
"HR": 11.0,
"BF": 221.0,
"Pitches": 915.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.6,
"H": 3.6,
"BB": 0.9,
"SO": 6.9,
"HR": 1.1,
"BF": 22.1,
"Pitches": 91.5
},
"rates": {
"ERA": 2.25,
"WHIP": 0.75,
"ER_per_IP": 0.25,
"H_per_IP": 0.6,
"BB_per_IP": 0.15,
"SO_per_IP": 1.15,
"HR_per_IP": 0.18333
}
},
"season": {
"games": 17,
"totals": {
"IP": 93.1,
"ER": 26.0,
"R": 27.0,
"H": 60.0,
"BB": 16.0,
"SO": 107.0,
"HR": 14.0,
"BF": 349.0,
"Pitches": 1418.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5294,
"R": 1.5882,
"H": 3.5294,
"BB": 0.9412,
"SO": 6.2941,
"HR": 0.8235,
"BF": 20.5294,
"Pitches": 83.4118
},
"rates": {
"ERA": 2.5071,
"WHIP": 0.8143,
"ER_per_IP": 0.27857,
"H_per_IP": 0.64286,
"BB_per_IP": 0.17143,
"SO_per_IP": 1.14643,
"HR_per_IP": 0.15
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.814,
"predicted_H": 4.019,
"predicted_BB": 1.174,
"predicted_SO": 6.322,
"predicted_HR": 0.901,
"predicted_ERA": 2.7687,
"predicted_WHIP": 0.8805
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.814,
"final": 2.343,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.019,
"final": 3.1185,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.174,
"final": 1.5424,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.322,
"final": 6.6244,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.901,
"final": 1.3912,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7687,
"final": 2.7687,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8805,
"final": 0.8805,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 15,
"H": 36,
"BB": 9,
"SO": 69,
"HR": 11,
"ERA": 2.2500000000000004,
"WHIP": 0.7500000000000001,
"K9": 10.350000000000001,
"HR9": 1.6500000000000001,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.7355887934397453,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "701656",
"player_name": "Logan Henderson",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 2.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": "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": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.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": 2.0,
"after": 2.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": 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": 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": 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": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 7.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": "MIL",
"games": 157,
"wins": 98,
"losses": 59,
"win_pct": 0.6242,
"runs_scored": 806.0,
"runs_allowed": 606.0,
"run_differential": 200.0,
"run_differential_per_game": 1.2739,
"avg_runs_scored": 5.1338,
"avg_runs_allowed": 3.8599,
"offense_index": 1.1459,
"defense_index": 1.1607,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 3.6,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.332
},
"opponent": {
"team": "PHI",
"games": 157,
"wins": 87,
"losses": 70,
"win_pct": 0.5541,
"runs_scored": 703.0,
"runs_allowed": 672.0,
"run_differential": 31.0,
"run_differential_per_game": 0.1975,
"avg_runs_scored": 4.4777,
"avg_runs_allowed": 4.2803,
"offense_index": 0.9995,
"defense_index": 1.0467,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.0,
"run_differential": -6.0
},
"available": true,
"quality_score": 0.0702
},
"edges": {
"quality_edge": 0.2618,
"offense_edge": 0.1459,
"opponent_offense_edge": -0.0005,
"defense_strength": 0.1607,
"opponent_defense_weakness": -0.0467,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0153,
"run_prevention": 0.9708,
"strikeout": 1.0079
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "701656",
"profile": {
"available": true,
"pitcher_id": "701656",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 327.0,
"k_percent": 30.7,
"bb_percent": 4.6,
"woba": 0.249,
"xwoba": 0.257,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 38.2,
"avg_best_speed": 77.3177,
"avg_hyper_speed": 94.006,
"whiff_percent": 27.0,
"swing_percent": 53.6
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8735,
"command_and_miss": 0.8857,
"regression_edge": -0.2286,
"xwoba_edge": 1.5571,
"barrel_edge": -0.3778,
"hard_hit_edge": -0.0429,
"whiff_edge": 0.2714,
"bb_edge": 1.125,
"pitch_design_score": -0.088
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "701656",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.2913826151733,
"release_spin_rate": 2416.722169597347,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.2913826151733,
"release_spin_rate": 2416.722169597347,
"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.2914,
"release_spin_rate": 2416.7222,
"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.088,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6289,
"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.6895,
"sample_weight": 1.0,
"run_prevention_factor": 0.9414,
"strikeout_factor": 1.0611,
"walk_factor": 0.91,
"homer_factor": 0.9852,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "701656",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9414,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9414,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.91,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9852,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0611,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260923_MIL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_MIL@PHI | home | Aaron Nola | Aaron Nola | True | 6.0 | 6.0 | 0 | 3 | 4 | 1 | 6/4 | 2/1 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.491089108910891,
"WHIP": 1.3485148514851484,
"IP": 168.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.43,
"recent_avg_IP": 6.267,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0222,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 1.0229,
"walk_factor": 0.98,
"homer_factor": 1.0473,
"regression_flag": "positive_pitcher_regression",
"k_percent": 23.7,
"bb_percent": 8.1,
"woba": 0.342,
"xwoba": 0.312,
"barrel_percent": 9.1,
"hard_hit_percent": 40.2,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 31,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605400",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 6.0,
"R": 6.0,
"H": 21.0,
"BB": 12.0,
"SO": 23.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 471.0
},
"per_game": {
"IP": 6.1,
"ER": 1.2,
"R": 1.2,
"H": 4.2,
"BB": 2.4,
"SO": 4.6,
"HR": 0.6,
"BF": 24.2,
"Pitches": 94.2
},
"rates": {
"ERA": 1.7234,
"WHIP": 1.0532,
"ER_per_IP": 0.19149,
"H_per_IP": 0.67021,
"BB_per_IP": 0.38298,
"SO_per_IP": 0.73404,
"HR_per_IP": 0.09574
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 14.0,
"R": 14.0,
"H": 48.0,
"BB": 22.0,
"SO": 57.0,
"HR": 9.0,
"BF": 239.0,
"Pitches": 955.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 4.8,
"BB": 2.2,
"SO": 5.7,
"HR": 0.9,
"BF": 23.9,
"Pitches": 95.5
},
"rates": {
"ERA": 2.1,
"WHIP": 1.1667,
"ER_per_IP": 0.23333,
"H_per_IP": 0.8,
"BB_per_IP": 0.36667,
"SO_per_IP": 0.95,
"HR_per_IP": 0.15
}
},
"season": {
"games": 31,
"totals": {
"IP": 168.1,
"ER": 84.0,
"R": 86.0,
"H": 169.0,
"BB": 58.0,
"SO": 169.0,
"HR": 34.0,
"BF": 714.0,
"Pitches": 2837.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7097,
"R": 2.7742,
"H": 5.4516,
"BB": 1.871,
"SO": 5.4516,
"HR": 1.0968,
"BF": 23.0323,
"Pitches": 91.5161
},
"rates": {
"ERA": 4.4911,
"WHIP": 1.3485,
"ER_per_IP": 0.49901,
"H_per_IP": 1.00396,
"BB_per_IP": 0.34455,
"SO_per_IP": 1.00396,
"HR_per_IP": 0.20198
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.812,
"predicted_H": 4.871,
"predicted_BB": 2.229,
"predicted_SO": 5.256,
"predicted_HR": 0.828,
"predicted_ERA": 2.7113,
"predicted_WHIP": 1.1805
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.812,
"final": 2.2975,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.871,
"final": 5.3324,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.229,
"final": 2.1354,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.256,
"final": 5.9687,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.828,
"final": 0.8983,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7113,
"final": 2.7113,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1805,
"final": 1.1805,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 14,
"H": 48,
"BB": 22,
"SO": 57,
"HR": 9,
"ERA": 2.1,
"WHIP": 1.1666666666666667,
"K9": 8.55,
"HR9": 1.35,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 0.7291304601064118,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605400",
"player_name": "Aaron Nola",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 7.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "PHI",
"games": 157,
"wins": 87,
"losses": 70,
"win_pct": 0.5541,
"runs_scored": 703.0,
"runs_allowed": 672.0,
"run_differential": 31.0,
"run_differential_per_game": 0.1975,
"avg_runs_scored": 4.4777,
"avg_runs_allowed": 4.2803,
"offense_index": 0.9995,
"defense_index": 1.0467,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.0,
"run_differential": -6.0
},
"available": true,
"quality_score": 0.0702
},
"opponent": {
"team": "MIL",
"games": 157,
"wins": 98,
"losses": 59,
"win_pct": 0.6242,
"runs_scored": 806.0,
"runs_allowed": 606.0,
"run_differential": 200.0,
"run_differential_per_game": 1.2739,
"avg_runs_scored": 5.1338,
"avg_runs_allowed": 3.8599,
"offense_index": 1.1459,
"defense_index": 1.1607,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 3.6,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.332
},
"edges": {
"quality_edge": -0.2618,
"offense_edge": -0.0005,
"opponent_offense_edge": 0.1459,
"defense_strength": 0.0467,
"opponent_defense_weakness": -0.1607,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9851,
"run_prevention": 1.0318,
"strikeout": 0.9805
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605400",
"profile": {
"available": true,
"pitcher_id": "605400",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 663.0,
"k_percent": 23.7,
"bb_percent": 8.1,
"woba": 0.342,
"xwoba": 0.312,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 40.2,
"avg_best_speed": 76.8713,
"avg_hyper_speed": 94.2748,
"whiff_percent": 27.3,
"swing_percent": 46.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2102,
"command_and_miss": 0.2757,
"regression_edge": 0.8571,
"xwoba_edge": -0.0143,
"barrel_edge": -0.4222,
"hard_hit_edge": -0.3286,
"whiff_edge": 0.3143,
"bb_edge": 0.25,
"pitch_design_score": -0.2181
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"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": 85.96943619771524,
"release_spin_rate": 2296.1915924432924,
"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": 85.96943619771524,
"release_spin_rate": 2296.1915924432924,
"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.9694,
"release_spin_rate": 2296.1916,
"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.2181,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5577,
"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.0222,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 1.0229,
"walk_factor": 0.98,
"homer_factor": 1.0473,
"woba_minus_xwoba": 0.03,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "605400",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9981,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9981,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0473,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0229,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "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/20260923_MIL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_MIN@SF | away | Connor Prielipp | Connor Prielipp | True | 5.2 | 5.1 | -1 | 3 | 2 | -1 | 2/4 | 1/2 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.93628808864266,
"WHIP": 1.296398891966759,
"IP": 120.1,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.302,
"recent_avg_IP": 5.733,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.01,
"sample_weight": 1.0,
"run_prevention_factor": 0.9991,
"strikeout_factor": 1.0063,
"walk_factor": 0.982,
"homer_factor": 1.0133,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 8.2,
"woba": 0.316,
"xwoba": 0.308,
"barrel_percent": 6.8,
"hard_hit_percent": 42.0,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 354,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687570",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 8.0,
"R": 8.0,
"H": 21.0,
"BB": 4.0,
"SO": 24.0,
"HR": 1.0,
"BF": 105.0,
"Pitches": 388.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.2,
"BB": 0.8,
"SO": 4.8,
"HR": 0.2,
"BF": 21.0,
"Pitches": 77.6
},
"rates": {
"ERA": 2.7,
"WHIP": 0.9375,
"ER_per_IP": 0.3,
"H_per_IP": 0.7875,
"BB_per_IP": 0.15,
"SO_per_IP": 0.9,
"HR_per_IP": 0.0375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 29.0,
"R": 29.0,
"H": 48.0,
"BB": 17.0,
"SO": 54.0,
"HR": 6.0,
"BF": 219.0,
"Pitches": 834.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 2.9,
"H": 4.8,
"BB": 1.7,
"SO": 5.4,
"HR": 0.6,
"BF": 21.9,
"Pitches": 83.4
},
"rates": {
"ERA": 4.8634,
"WHIP": 1.2112,
"ER_per_IP": 0.54037,
"H_per_IP": 0.89441,
"BB_per_IP": 0.31677,
"SO_per_IP": 1.00621,
"HR_per_IP": 0.1118
}
},
"season": {
"games": 23,
"totals": {
"IP": 120.1,
"ER": 66.0,
"R": 74.0,
"H": 114.0,
"BB": 42.0,
"SO": 125.0,
"HR": 14.0,
"BF": 513.0,
"Pitches": 1990.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8696,
"R": 3.2174,
"H": 4.9565,
"BB": 1.8261,
"SO": 5.4348,
"HR": 0.6087,
"BF": 22.3043,
"Pitches": 86.5217
},
"rates": {
"ERA": 4.9363,
"WHIP": 1.2964,
"ER_per_IP": 0.54848,
"H_per_IP": 0.94737,
"BB_per_IP": 0.34903,
"SO_per_IP": 1.03878,
"HR_per_IP": 0.11634
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.413,
"predicted_H": 4.74,
"predicted_BB": 1.462,
"predicted_SO": 5.177,
"predicted_HR": 0.494,
"predicted_ERA": 4.0263,
"predicted_WHIP": 1.1501
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.413,
"final": 2.6627,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.74,
"final": 3.5742,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.462,
"final": 1.2654,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.177,
"final": 4.6762,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.494,
"final": 0.2838,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0263,
"final": 4.0263,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1501,
"final": 1.1501,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 29,
"H": 48,
"BB": 17,
"SO": 54,
"HR": 6,
"ERA": 4.863354037267081,
"WHIP": 1.2111801242236024,
"K9": 9.055900621118013,
"HR9": 1.0062111801242237,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 1.0411206257378818,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687570",
"player_name": "Connor Prielipp",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 717.0,
"runs_allowed": 783.0,
"run_differential": -66.0,
"run_differential_per_game": -0.4177,
"avg_runs_scored": 4.538,
"avg_runs_allowed": 4.9557,
"offense_index": 1.0089,
"defense_index": 0.9076,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.7,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1129
},
"opponent": {
"team": "SF",
"games": 158,
"wins": 65,
"losses": 93,
"win_pct": 0.4114,
"runs_scored": 663.0,
"runs_allowed": 745.0,
"run_differential": -82.0,
"run_differential_per_game": -0.519,
"avg_runs_scored": 4.1962,
"avg_runs_allowed": 4.7152,
"offense_index": 0.933,
"defense_index": 0.9539,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.9,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.2088
},
"edges": {
"quality_edge": 0.0959,
"offense_edge": 0.0089,
"opponent_offense_edge": -0.067,
"defense_strength": -0.0924,
"opponent_defense_weakness": 0.0461,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0037,
"run_prevention": 0.9937,
"strikeout": 1.0082
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687570",
"profile": {
"available": true,
"pitcher_id": "687570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 484.0,
"k_percent": 24.4,
"bb_percent": 8.2,
"woba": 0.316,
"xwoba": 0.308,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 42.0,
"avg_best_speed": 80.5018,
"avg_hyper_speed": 94.2977,
"whiff_percent": 23.7,
"swing_percent": 47.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0876,
"command_and_miss": 0.1357,
"regression_edge": 0.2286,
"xwoba_edge": 0.1,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.5857,
"whiff_edge": -0.2,
"bb_edge": 0.225,
"pitch_design_score": 0.0121
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687570",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 78,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 90.07941742576352,
"release_spin_rate": 2601.583158009434,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 90.07941742576352,
"release_spin_rate": 2601.583158009434,
"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.0794,
"release_spin_rate": 2601.5832,
"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.0121,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0863,
"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.01,
"sample_weight": 1.0,
"run_prevention_factor": 0.9991,
"strikeout_factor": 1.0063,
"walk_factor": 0.982,
"homer_factor": 1.0133,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687570",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9991,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9991,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.982,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0133,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0063,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 81,
"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/20260923_MIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_MIN@SF | home | Cesar Perdomo | Cesar Perdomo | True | 4.2 | 5.1 | 2 | 2 | 2 | 0 | 4/5 | 2/0 | 5/2 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 3.724137931034483,
"WHIP": 1.5,
"IP": 19.1,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 5.111,
"recent_avg_IP": 5.111,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2374,
"sample_weight": 0.45,
"run_prevention_factor": 1.0202,
"strikeout_factor": 0.9679,
"walk_factor": 0.9937,
"homer_factor": 1.0262,
"regression_flag": "neutral",
"k_percent": 14.5,
"bb_percent": 8.4,
"woba": 0.346,
"xwoba": 0.338,
"barrel_percent": 6.3,
"hard_hit_percent": 46.9,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 313,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702885",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 7.0,
"SO": 12.0,
"HR": 3.0,
"BF": 83.0,
"Pitches": 298.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 5.5,
"BB": 1.75,
"SO": 3.0,
"HR": 0.75,
"BF": 20.75,
"Pitches": 74.5
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.5,
"ER_per_IP": 0.41379,
"H_per_IP": 1.13793,
"BB_per_IP": 0.36207,
"SO_per_IP": 0.62069,
"HR_per_IP": 0.15517
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 7.0,
"SO": 12.0,
"HR": 3.0,
"BF": 83.0,
"Pitches": 298.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 5.5,
"BB": 1.75,
"SO": 3.0,
"HR": 0.75,
"BF": 20.75,
"Pitches": 74.5
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.5,
"ER_per_IP": 0.41379,
"H_per_IP": 1.13793,
"BB_per_IP": 0.36207,
"SO_per_IP": 0.62069,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 7.0,
"SO": 12.0,
"HR": 3.0,
"BF": 83.0,
"Pitches": 298.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 5.5,
"BB": 1.75,
"SO": 3.0,
"HR": 0.75,
"BF": 20.75,
"Pitches": 74.5
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.5,
"ER_per_IP": 0.41379,
"H_per_IP": 1.13793,
"BB_per_IP": 0.36207,
"SO_per_IP": 0.62069,
"HR_per_IP": 0.15517
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.266,
"predicted_H": 5.096,
"predicted_BB": 1.796,
"predicted_SO": 3.865,
"predicted_HR": 0.734,
"predicted_ERA": 4.2034,
"predicted_WHIP": 1.4205
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.266,
"final": 2.1105,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 5.096,
"final": 2.7009,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.796,
"final": 1.9153,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.865,
"final": 4.5287,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.734,
"final": 0.3048,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2034,
"final": 4.2034,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4205,
"final": 1.4205,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 19.1,
"ER": 8,
"H": 22,
"BB": 7,
"SO": 12,
"HR": 3,
"ERA": 3.724137931034482,
"WHIP": 1.4999999999999998,
"K9": 5.586206896551723,
"HR9": 1.3965517241379308,
"games_pitched": 4,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.9489044831644622,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702885",
"player_name": "Cesar Perdomo",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 158,
"wins": 65,
"losses": 93,
"win_pct": 0.4114,
"runs_scored": 663.0,
"runs_allowed": 745.0,
"run_differential": -82.0,
"run_differential_per_game": -0.519,
"avg_runs_scored": 4.1962,
"avg_runs_allowed": 4.7152,
"offense_index": 0.933,
"defense_index": 0.9539,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.9,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.2088
},
"opponent": {
"team": "MIN",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 717.0,
"runs_allowed": 783.0,
"run_differential": -66.0,
"run_differential_per_game": -0.4177,
"avg_runs_scored": 4.538,
"avg_runs_allowed": 4.9557,
"offense_index": 1.0089,
"defense_index": 0.9076,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.7,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1129
},
"edges": {
"quality_edge": -0.0959,
"offense_edge": -0.067,
"opponent_offense_edge": 0.0089,
"defense_strength": -0.0461,
"opponent_defense_weakness": 0.0924,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9944,
"run_prevention": 1.0108,
"strikeout": 0.9964
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702885",
"profile": {
"available": true,
"pitcher_id": "702885",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 61.0,
"k_percent": 14.5,
"bb_percent": 8.4,
"woba": 0.346,
"xwoba": 0.338,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 46.9,
"avg_best_speed": 81.2421,
"avg_hyper_speed": 94.7299,
"whiff_percent": 20.0,
"swing_percent": 50.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6579,
"command_and_miss": -0.6957,
"regression_edge": 0.2286,
"xwoba_edge": -0.7571,
"barrel_edge": 0.2,
"hard_hit_edge": -1.2857,
"whiff_edge": -0.7286,
"bb_edge": 0.175,
"pitch_design_score": -0.0146
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702885",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 89.60313256754885,
"release_spin_rate": 2051.5478690156715,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 89.60313256754885,
"release_spin_rate": 2051.5478690156715,
"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.6031,
"release_spin_rate": 2051.5479,
"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.0146,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1042,
"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.2374,
"sample_weight": 0.45,
"run_prevention_factor": 1.0202,
"strikeout_factor": 0.9679,
"walk_factor": 0.9937,
"homer_factor": 1.0262,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "702885",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0091,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0091,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0118,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9856,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260923_MIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_NYM@TEX | away | Nolan McLean | Nolan McLean | True | 6.0 | 7.0 | 3 | 0 | 2 | 2 | 0/3 | 0/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1795366795366795,
"WHIP": 1.193050193050193,
"IP": 172.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.756,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2313,
"sample_weight": 1.0,
"run_prevention_factor": 0.9803,
"strikeout_factor": 1.0171,
"walk_factor": 1.01,
"homer_factor": 0.962,
"regression_flag": "neutral",
"k_percent": 26.2,
"bb_percent": 9.6,
"woba": 0.293,
"xwoba": 0.297,
"barrel_percent": 6.5,
"hard_hit_percent": 35.6,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 44,
"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": "690997",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 8.0,
"R": 9.0,
"H": 26.0,
"BB": 15.0,
"SO": 27.0,
"HR": 2.0,
"BF": 128.0,
"Pitches": 473.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.8,
"H": 5.2,
"BB": 3.0,
"SO": 5.4,
"HR": 0.4,
"BF": 25.6,
"Pitches": 94.6
},
"rates": {
"ERA": 2.4,
"WHIP": 1.3667,
"ER_per_IP": 0.26667,
"H_per_IP": 0.86667,
"BB_per_IP": 0.5,
"SO_per_IP": 0.9,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 19.0,
"R": 22.0,
"H": 54.0,
"BB": 28.0,
"SO": 54.0,
"HR": 7.0,
"BF": 253.0,
"Pitches": 950.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 2.2,
"H": 5.4,
"BB": 2.8,
"SO": 5.4,
"HR": 0.7,
"BF": 25.3,
"Pitches": 95.0
},
"rates": {
"ERA": 2.882,
"WHIP": 1.382,
"ER_per_IP": 0.32022,
"H_per_IP": 0.91011,
"BB_per_IP": 0.47191,
"SO_per_IP": 0.91011,
"HR_per_IP": 0.11798
}
},
"season": {
"games": 30,
"totals": {
"IP": 172.2,
"ER": 61.0,
"R": 73.0,
"H": 137.0,
"BB": 69.0,
"SO": 189.0,
"HR": 17.0,
"BF": 722.0,
"Pitches": 2832.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0333,
"R": 2.4333,
"H": 4.5667,
"BB": 2.3,
"SO": 6.3,
"HR": 0.5667,
"BF": 24.0667,
"Pitches": 94.4
},
"rates": {
"ERA": 3.1795,
"WHIP": 1.1931,
"ER_per_IP": 0.35328,
"H_per_IP": 0.79344,
"BB_per_IP": 0.39961,
"SO_per_IP": 1.09459,
"HR_per_IP": 0.09846
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.975,
"predicted_H": 5.25,
"predicted_BB": 2.714,
"predicted_SO": 5.596,
"predicted_HR": 0.589,
"predicted_ERA": 2.9907,
"predicted_WHIP": 1.3401
}
},
"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.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.975,
"final": 1.1645,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 5.25,
"final": 3.0955,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.714,
"final": 1.6002,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.596,
"final": 5.3514,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.589,
"final": 0.3473,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9907,
"final": 2.9907,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3401,
"final": 1.3401,
"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.1,
"ER": 19,
"H": 54,
"BB": 28,
"SO": 54,
"HR": 7,
"ERA": 2.8820224719101124,
"WHIP": 1.3820224719101124,
"K9": 8.191011235955056,
"HR9": 1.0617977528089888,
"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-17T00:00:00"
},
"recent_form_boost": 0.8224918833273858,
"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": 0.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.0,
"predicted_ER": 0,
"predicted_H": 0,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690997",
"player_name": "Nolan McLean",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"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": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 157,
"wins": 72,
"losses": 85,
"win_pct": 0.4586,
"runs_scored": 674.0,
"runs_allowed": 712.0,
"run_differential": -38.0,
"run_differential_per_game": -0.242,
"avg_runs_scored": 4.293,
"avg_runs_allowed": 4.535,
"offense_index": 0.9584,
"defense_index": 0.9877,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.9,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0999
},
"opponent": {
"team": "TEX",
"games": 157,
"wins": 78,
"losses": 79,
"win_pct": 0.4968,
"runs_scored": 656.0,
"runs_allowed": 693.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2357,
"avg_runs_scored": 4.1783,
"avg_runs_allowed": 4.414,
"offense_index": 0.9328,
"defense_index": 1.0148,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.2,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0033
},
"edges": {
"quality_edge": -0.1032,
"offense_edge": -0.0416,
"opponent_offense_edge": -0.0672,
"defense_strength": -0.0123,
"opponent_defense_weakness": -0.0148,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9982,
"run_prevention": 0.9956,
"strikeout": 1.0023
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690997",
"profile": {
"available": true,
"pitcher_id": "690997",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 690.0,
"k_percent": 26.2,
"bb_percent": 9.6,
"woba": 0.293,
"xwoba": 0.297,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 35.6,
"avg_best_speed": 76.8262,
"avg_hyper_speed": 93.5936,
"whiff_percent": 23.8,
"swing_percent": 44.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3367,
"command_and_miss": 0.1864,
"regression_edge": -0.1143,
"xwoba_edge": 0.4143,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.3286,
"whiff_edge": -0.1857,
"bb_edge": -0.125,
"pitch_design_score": 0.0713
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690997",
"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": 91.13702714608331,
"release_spin_rate": 2501.49716928675,
"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": 91.13702714608331,
"release_spin_rate": 2501.49716928675,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.137,
"release_spin_rate": 2501.4972,
"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.0713,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5093,
"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.2313,
"sample_weight": 1.0,
"run_prevention_factor": 0.9803,
"strikeout_factor": 1.0171,
"walk_factor": 1.01,
"homer_factor": 0.962,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "690997",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9803,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9803,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.01,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.962,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0171,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 76,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260923_NYM@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_NYM@TEX | home | Cody Bradford | Cody Bradford | True | 4.2 | 4.1 | -1 | 2 | 2 | 0 | 4/4 | 0/0 | 11/1 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 4.189655172413794,
"WHIP": 1.5,
"IP": 38.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.905,
"recent_avg_IP": 4.6,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3487,
"sample_weight": 0.6,
"run_prevention_factor": 1.0296,
"strikeout_factor": 0.939,
"walk_factor": 0.9616,
"homer_factor": 1.0387,
"regression_flag": "neutral",
"k_percent": 11.8,
"bb_percent": 5.9,
"woba": 0.354,
"xwoba": 0.345,
"barrel_percent": 9.5,
"hard_hit_percent": 37.0,
"whiff_percent": 17.4
},
"espn_rank": {
"rank": 283,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "674003",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 13.0,
"R": 13.0,
"H": 30.0,
"BB": 6.0,
"SO": 10.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 402.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 6.0,
"BB": 1.2,
"SO": 2.0,
"HR": 0.6,
"BF": 20.8,
"Pitches": 80.4
},
"rates": {
"ERA": 5.0143,
"WHIP": 1.5429,
"ER_per_IP": 0.55714,
"H_per_IP": 1.28571,
"BB_per_IP": 0.25714,
"SO_per_IP": 0.42857,
"HR_per_IP": 0.12857
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 38.2,
"ER": 18.0,
"R": 18.0,
"H": 48.0,
"BB": 10.0,
"SO": 20.0,
"HR": 4.0,
"BF": 169.0,
"Pitches": 628.0
},
"per_game": {
"IP": 4.2,
"ER": 2.25,
"R": 2.25,
"H": 6.0,
"BB": 1.25,
"SO": 2.5,
"HR": 0.5,
"BF": 21.125,
"Pitches": 78.5
},
"rates": {
"ERA": 4.1897,
"WHIP": 1.5,
"ER_per_IP": 0.46552,
"H_per_IP": 1.24138,
"BB_per_IP": 0.25862,
"SO_per_IP": 0.51724,
"HR_per_IP": 0.10345
}
},
"season": {
"games": 8,
"totals": {
"IP": 38.2,
"ER": 18.0,
"R": 18.0,
"H": 48.0,
"BB": 10.0,
"SO": 20.0,
"HR": 4.0,
"BF": 169.0,
"Pitches": 628.0
},
"per_game": {
"IP": 4.2,
"ER": 2.25,
"R": 2.25,
"H": 6.0,
"BB": 1.25,
"SO": 2.5,
"HR": 0.5,
"BF": 21.125,
"Pitches": 78.5
},
"rates": {
"ERA": 4.1897,
"WHIP": 1.5,
"ER_per_IP": 0.46552,
"H_per_IP": 1.24138,
"BB_per_IP": 0.25862,
"SO_per_IP": 0.51724,
"HR_per_IP": 0.10345
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.431,
"predicted_H": 5.411,
"predicted_BB": 1.416,
"predicted_SO": 2.994,
"predicted_HR": 0.612,
"predicted_ERA": 4.6884,
"predicted_WHIP": 1.463
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.431,
"final": 2.2101,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.411,
"final": 4.1754,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.416,
"final": 0.6903,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 11.0,
"form": 2.994,
"final": 7.097,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.612,
"final": 1.3233,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6884,
"final": 4.6884,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.463,
"final": 1.463,
"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": 38.2,
"ER": 18,
"H": 48,
"BB": 10,
"SO": 20,
"HR": 4,
"ERA": 4.189655172413794,
"WHIP": 1.5,
"K9": 4.655172413793104,
"HR9": 0.9310344827586208,
"games_pitched": 8,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 0.9725500003362969,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 11.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 11,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "674003",
"player_name": "Cody Bradford",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 11.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 11.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": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 11.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 11.0,
"after": 11.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": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 157,
"wins": 78,
"losses": 79,
"win_pct": 0.4968,
"runs_scored": 656.0,
"runs_allowed": 693.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2357,
"avg_runs_scored": 4.1783,
"avg_runs_allowed": 4.414,
"offense_index": 0.9328,
"defense_index": 1.0148,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.2,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0033
},
"opponent": {
"team": "NYM",
"games": 157,
"wins": 72,
"losses": 85,
"win_pct": 0.4586,
"runs_scored": 674.0,
"runs_allowed": 712.0,
"run_differential": -38.0,
"run_differential_per_game": -0.242,
"avg_runs_scored": 4.293,
"avg_runs_allowed": 4.535,
"offense_index": 0.9584,
"defense_index": 0.9877,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.9,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0999
},
"edges": {
"quality_edge": 0.1032,
"offense_edge": -0.0672,
"opponent_offense_edge": -0.0416,
"defense_strength": 0.0148,
"opponent_defense_weakness": 0.0123,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0062,
"run_prevention": 0.9867,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "674003",
"profile": {
"available": true,
"pitcher_id": "674003",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 150.0,
"k_percent": 11.8,
"bb_percent": 5.9,
"woba": 0.354,
"xwoba": 0.345,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 37.0,
"avg_best_speed": 78.5393,
"avg_hyper_speed": 94.3216,
"whiff_percent": 17.4,
"swing_percent": 49.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6378,
"command_and_miss": -0.8743,
"regression_edge": 0.2571,
"xwoba_edge": -0.9571,
"barrel_edge": -0.5111,
"hard_hit_edge": 0.1286,
"whiff_edge": -1.1,
"bb_edge": 0.8,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674003",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 84.66333718879456,
"release_spin_rate": 1904.8000427733539,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 84.66333718879456,
"release_spin_rate": 1904.8000427733539,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.6633,
"release_spin_rate": 1904.8,
"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.3487,
"sample_weight": 0.6,
"run_prevention_factor": 1.0296,
"strikeout_factor": 0.939,
"walk_factor": 0.9616,
"homer_factor": 1.0387,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "674003",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0178,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0178,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.977,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0232,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9634,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 11,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 18,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260923_NYM@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_SD@LAD | away | Robbie Ray | Robbie Ray | True | 5.0 | 3.1 | -5 | 3 | 1 | -2 | 5/7 | 2/1 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.603696098562628,
"WHIP": 1.3305954825462012,
"IP": 162.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.379,
"recent_avg_IP": 4.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3059,
"sample_weight": 1.0,
"run_prevention_factor": 1.026,
"strikeout_factor": 0.9897,
"walk_factor": 1.06,
"homer_factor": 1.04,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 12.1,
"woba": 0.313,
"xwoba": 0.334,
"barrel_percent": 8.3,
"hard_hit_percent": 38.1,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 72,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "592662",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 16.0,
"R": 16.0,
"H": 20.0,
"BB": 15.0,
"SO": 21.0,
"HR": 4.0,
"BF": 107.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.2,
"H": 4.0,
"BB": 3.0,
"SO": 4.2,
"HR": 0.8,
"BF": 21.4,
"Pitches": 88.4
},
"rates": {
"ERA": 5.8378,
"WHIP": 1.4189,
"ER_per_IP": 0.64865,
"H_per_IP": 0.81081,
"BB_per_IP": 0.60811,
"SO_per_IP": 0.85135,
"HR_per_IP": 0.16216
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 24.0,
"R": 24.0,
"H": 42.0,
"BB": 29.0,
"SO": 42.0,
"HR": 7.0,
"BF": 220.0,
"Pitches": 875.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 4.2,
"BB": 2.9,
"SO": 4.2,
"HR": 0.7,
"BF": 22.0,
"Pitches": 87.5
},
"rates": {
"ERA": 4.1806,
"WHIP": 1.3742,
"ER_per_IP": 0.46452,
"H_per_IP": 0.8129,
"BB_per_IP": 0.56129,
"SO_per_IP": 0.8129,
"HR_per_IP": 0.13548
}
},
"season": {
"games": 30,
"totals": {
"IP": 162.1,
"ER": 65.0,
"R": 73.0,
"H": 133.0,
"BB": 83.0,
"SO": 138.0,
"HR": 22.0,
"BF": 685.0,
"Pitches": 2770.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1667,
"R": 2.4333,
"H": 4.4333,
"BB": 2.7667,
"SO": 4.6,
"HR": 0.7333,
"BF": 22.8333,
"Pitches": 92.3333
},
"rates": {
"ERA": 3.6037,
"WHIP": 1.3306,
"ER_per_IP": 0.40041,
"H_per_IP": 0.8193,
"BB_per_IP": 0.51129,
"SO_per_IP": 0.8501,
"HR_per_IP": 0.13552
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.738,
"predicted_H": 4.317,
"predicted_BB": 2.807,
"predicted_SO": 4.393,
"predicted_HR": 0.761,
"predicted_ERA": 4.7789,
"predicted_WHIP": 1.3815
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.738,
"final": 3.2559,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.317,
"final": 4.5973,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.807,
"final": 2.4758,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.393,
"final": 3.411,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.761,
"final": 1.2695,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7789,
"final": 4.7789,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3815,
"final": 1.3815,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 24,
"H": 42,
"BB": 29,
"SO": 42,
"HR": 7,
"ERA": 4.180645161290323,
"WHIP": 1.3741935483870966,
"K9": 7.316129032258064,
"HR9": 1.2193548387096773,
"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-16T00:00:00"
},
"recent_form_boost": 0.9683912127945838,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592662",
"player_name": "Robbie Ray",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 157,
"wins": 87,
"losses": 70,
"win_pct": 0.5541,
"runs_scored": 690.0,
"runs_allowed": 656.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2166,
"avg_runs_scored": 4.3949,
"avg_runs_allowed": 4.1783,
"offense_index": 0.9798,
"defense_index": 1.0735,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.9,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1775
},
"opponent": {
"team": "LAD",
"games": 157,
"wins": 97,
"losses": 60,
"win_pct": 0.6178,
"runs_scored": 787.0,
"runs_allowed": 587.0,
"run_differential": 200.0,
"run_differential_per_game": 1.2739,
"avg_runs_scored": 5.0127,
"avg_runs_allowed": 3.7389,
"offense_index": 1.1176,
"defense_index": 1.1997,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 2.6,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.3263
},
"edges": {
"quality_edge": -0.1488,
"offense_edge": -0.0202,
"opponent_offense_edge": 0.1176,
"defense_strength": 0.0735,
"opponent_defense_weakness": -0.1997,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9915,
"run_prevention": 1.0189,
"strikeout": 0.9861
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592662",
"profile": {
"available": true,
"pitcher_id": "592662",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 633.0,
"k_percent": 20.1,
"bb_percent": 12.1,
"woba": 0.313,
"xwoba": 0.334,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 38.1,
"avg_best_speed": 78.8704,
"avg_hyper_speed": 94.0821,
"whiff_percent": 25.1,
"swing_percent": 46.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3044,
"command_and_miss": -0.2657,
"regression_edge": -0.6,
"xwoba_edge": -0.6429,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.0286,
"whiff_edge": 0.0,
"bb_edge": -0.75,
"pitch_design_score": -0.0795
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 88.44381407397167,
"release_spin_rate": 2131.493650416326,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 88.44381407397167,
"release_spin_rate": 2131.493650416326,
"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.4438,
"release_spin_rate": 2131.4937,
"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.0795,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5679,
"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.3059,
"sample_weight": 1.0,
"run_prevention_factor": 1.026,
"strikeout_factor": 0.9897,
"walk_factor": 1.06,
"homer_factor": 1.04,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592662",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.026,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.026,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.06,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.04,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9897,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260923_SD@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_SD@LAD | home | Yoshinobu Yamamoto | Yoshinobu Yamamoto | True | 6.2 | 6.0 | -2 | 3 | 2 | -1 | 6/5 | 2/1 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5139664804469275,
"WHIP": 0.8659217877094972,
"IP": 179.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 6.63,
"recent_avg_IP": 6.733,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6337,
"sample_weight": 1.0,
"run_prevention_factor": 0.9461,
"strikeout_factor": 1.0406,
"walk_factor": 0.938,
"homer_factor": 0.9395,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 6.0,
"woba": 0.241,
"xwoba": 0.266,
"barrel_percent": 6.6,
"hard_hit_percent": 36.0,
"whiff_percent": 28.0
},
"espn_rank": {
"rank": 6,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "808967",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.2,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 7.0,
"SO": 42.0,
"HR": 4.0,
"BF": 126.0,
"Pitches": 486.0
},
"per_game": {
"IP": 6.2,
"ER": 1.6,
"R": 1.6,
"H": 3.6,
"BB": 1.4,
"SO": 8.4,
"HR": 0.8,
"BF": 25.2,
"Pitches": 97.2
},
"rates": {
"ERA": 2.1386,
"WHIP": 0.7426,
"ER_per_IP": 0.23762,
"H_per_IP": 0.53465,
"BB_per_IP": 0.20792,
"SO_per_IP": 1.24752,
"HR_per_IP": 0.11881
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 68.1,
"ER": 15.0,
"R": 15.0,
"H": 38.0,
"BB": 16.0,
"SO": 72.0,
"HR": 7.0,
"BF": 257.0,
"Pitches": 988.0
},
"per_game": {
"IP": 6.2,
"ER": 1.5,
"R": 1.5,
"H": 3.8,
"BB": 1.6,
"SO": 7.2,
"HR": 0.7,
"BF": 25.7,
"Pitches": 98.8
},
"rates": {
"ERA": 1.9756,
"WHIP": 0.7902,
"ER_per_IP": 0.21951,
"H_per_IP": 0.5561,
"BB_per_IP": 0.23415,
"SO_per_IP": 1.05366,
"HR_per_IP": 0.10244
}
},
"season": {
"games": 27,
"totals": {
"IP": 179.0,
"ER": 50.0,
"R": 51.0,
"H": 114.0,
"BB": 41.0,
"SO": 178.0,
"HR": 19.0,
"BF": 682.0,
"Pitches": 2646.0
},
"per_game": {
"IP": 6.2,
"ER": 1.8519,
"R": 1.8889,
"H": 4.2222,
"BB": 1.5185,
"SO": 6.5926,
"HR": 0.7037,
"BF": 25.2593,
"Pitches": 98.0
},
"rates": {
"ERA": 2.514,
"WHIP": 0.8659,
"ER_per_IP": 0.27933,
"H_per_IP": 0.63687,
"BB_per_IP": 0.22905,
"SO_per_IP": 0.99441,
"HR_per_IP": 0.10615
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 1.879,
"predicted_H": 4.186,
"predicted_BB": 1.637,
"predicted_SO": 7.327,
"predicted_HR": 0.776,
"predicted_ERA": 2.5362,
"predicted_WHIP": 0.8734
}
},
"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.2,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.879,
"final": 2.7613,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.186,
"final": 4.9406,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.637,
"final": 1.788,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 7.327,
"final": 6.359,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.776,
"final": 0.8692,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5362,
"final": 2.5362,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8734,
"final": 0.8734,
"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": 68.1,
"ER": 15,
"H": 38,
"BB": 16,
"SO": 72,
"HR": 7,
"ERA": 1.9756097560975612,
"WHIP": 0.7902439024390244,
"K9": 9.482926829268294,
"HR9": 0.9219512195121952,
"games_pitched": 10,
"quality_starts": 8,
"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-15T00:00:00"
},
"recent_form_boost": 0.7057259885616964,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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.2,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "808967",
"player_name": "Yoshinobu Yamamoto",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"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_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"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": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 157,
"wins": 97,
"losses": 60,
"win_pct": 0.6178,
"runs_scored": 787.0,
"runs_allowed": 587.0,
"run_differential": 200.0,
"run_differential_per_game": 1.2739,
"avg_runs_scored": 5.0127,
"avg_runs_allowed": 3.7389,
"offense_index": 1.1176,
"defense_index": 1.1997,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 2.6,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.3263
},
"opponent": {
"team": "SD",
"games": 157,
"wins": 87,
"losses": 70,
"win_pct": 0.5541,
"runs_scored": 690.0,
"runs_allowed": 656.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2166,
"avg_runs_scored": 4.3949,
"avg_runs_allowed": 4.1783,
"offense_index": 0.9798,
"defense_index": 1.0735,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.9,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1775
},
"edges": {
"quality_edge": 0.1488,
"offense_edge": 0.1176,
"opponent_offense_edge": -0.0202,
"defense_strength": 0.1997,
"opponent_defense_weakness": -0.0735,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0128,
"run_prevention": 0.9694,
"strikeout": 1.0061
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "808967",
"profile": {
"available": true,
"pitcher_id": "808967",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 656.0,
"k_percent": 26.1,
"bb_percent": 6.0,
"woba": 0.241,
"xwoba": 0.266,
"sweet_spot_percent": 29.3,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 36.0,
"avg_best_speed": 76.2559,
"avg_hyper_speed": 93.8323,
"whiff_percent": 28.0,
"swing_percent": 49.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9849,
"command_and_miss": 0.57,
"regression_edge": -0.7143,
"xwoba_edge": 1.3,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.2714,
"whiff_edge": 0.4143,
"bb_edge": 0.775,
"pitch_design_score": 0.0672
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "808967",
"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": 91.06397663750431,
"release_spin_rate": 2177.495703419384,
"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": 91.06397663750431,
"release_spin_rate": 2177.495703419384,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.064,
"release_spin_rate": 2177.4957,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0672,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4801,
"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.6337,
"sample_weight": 1.0,
"run_prevention_factor": 0.9461,
"strikeout_factor": 1.0406,
"walk_factor": 0.938,
"homer_factor": 0.9395,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "808967",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9461,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9461,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.938,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9395,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0406,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 122,
"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/20260923_SD@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_STL@PIT | away | Matthew Liberatore | Matthew Liberatore | True | 5.0 | 5.2 | 2 | 3 | 1 | -2 | 6/6 | 1/0 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.363839285714286,
"WHIP": 1.4866071428571428,
"IP": 149.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 4.978,
"recent_avg_IP": 4.867,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3828,
"sample_weight": 1.0,
"run_prevention_factor": 1.0325,
"strikeout_factor": 0.9966,
"walk_factor": 0.986,
"homer_factor": 1.0837,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 8.4,
"woba": 0.357,
"xwoba": 0.341,
"barrel_percent": 9.2,
"hard_hit_percent": 41.9,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 850,
"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": "669461",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 19.0,
"R": 20.0,
"H": 31.0,
"BB": 11.0,
"SO": 23.0,
"HR": 6.0,
"BF": 111.0,
"Pitches": 420.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 4.0,
"H": 6.2,
"BB": 2.2,
"SO": 4.6,
"HR": 1.2,
"BF": 22.2,
"Pitches": 84.0
},
"rates": {
"ERA": 7.0274,
"WHIP": 1.726,
"ER_per_IP": 0.78082,
"H_per_IP": 1.27397,
"BB_per_IP": 0.45205,
"SO_per_IP": 0.94521,
"HR_per_IP": 0.24658
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 32.0,
"R": 33.0,
"H": 55.0,
"BB": 17.0,
"SO": 53.0,
"HR": 9.0,
"BF": 215.0,
"Pitches": 861.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.3,
"H": 5.5,
"BB": 1.7,
"SO": 5.3,
"HR": 0.9,
"BF": 21.5,
"Pitches": 86.1
},
"rates": {
"ERA": 5.7219,
"WHIP": 1.4305,
"ER_per_IP": 0.63576,
"H_per_IP": 1.09272,
"BB_per_IP": 0.33775,
"SO_per_IP": 1.05298,
"HR_per_IP": 0.17881
}
},
"season": {
"games": 30,
"totals": {
"IP": 149.1,
"ER": 89.0,
"R": 95.0,
"H": 167.0,
"BB": 55.0,
"SO": 148.0,
"HR": 27.0,
"BF": 652.0,
"Pitches": 2529.0
},
"per_game": {
"IP": 5.0,
"ER": 2.9667,
"R": 3.1667,
"H": 5.5667,
"BB": 1.8333,
"SO": 4.9333,
"HR": 0.9,
"BF": 21.7333,
"Pitches": 84.3
},
"rates": {
"ERA": 5.3638,
"WHIP": 1.4866,
"ER_per_IP": 0.59598,
"H_per_IP": 1.1183,
"BB_per_IP": 0.3683,
"SO_per_IP": 0.99107,
"HR_per_IP": 0.1808
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.334,
"predicted_H": 5.755,
"predicted_BB": 1.963,
"predicted_SO": 4.921,
"predicted_HR": 1.005,
"predicted_ERA": 6.0018,
"predicted_WHIP": 1.5436
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.334,
"final": 3.1969,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.755,
"final": 5.8555,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.963,
"final": 1.5678,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.921,
"final": 4.543,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.005,
"final": 1.0029,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.0018,
"final": 6.0018,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5436,
"final": 1.5436,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 32,
"H": 55,
"BB": 17,
"SO": 53,
"HR": 9,
"ERA": 5.721854304635762,
"WHIP": 1.4304635761589406,
"K9": 9.47682119205298,
"HR9": 1.6092715231788082,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 1.143183992115242,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669461",
"player_name": "Matthew Liberatore",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 157,
"wins": 76,
"losses": 81,
"win_pct": 0.4841,
"runs_scored": 704.0,
"runs_allowed": 729.0,
"run_differential": -25.0,
"run_differential_per_game": -0.1592,
"avg_runs_scored": 4.4841,
"avg_runs_allowed": 4.6433,
"offense_index": 1.0009,
"defense_index": 0.9649,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.9,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0681
},
"opponent": {
"team": "PIT",
"games": 157,
"wins": 80,
"losses": 77,
"win_pct": 0.5096,
"runs_scored": 750.0,
"runs_allowed": 719.0,
"run_differential": 31.0,
"run_differential_per_game": 0.1975,
"avg_runs_scored": 4.7771,
"avg_runs_allowed": 4.5796,
"offense_index": 1.0663,
"defense_index": 0.9783,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.6,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0674
},
"edges": {
"quality_edge": -0.1355,
"offense_edge": 0.0009,
"opponent_offense_edge": 0.0663,
"defense_strength": -0.0351,
"opponent_defense_weakness": 0.0217,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9909,
"run_prevention": 1.0209,
"strikeout": 0.9906
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669461",
"profile": {
"available": true,
"pitcher_id": "669461",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 627.0,
"k_percent": 22.7,
"bb_percent": 8.4,
"woba": 0.357,
"xwoba": 0.341,
"sweet_spot_percent": 40.1,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 41.9,
"avg_best_speed": 79.4709,
"avg_hyper_speed": 94.5677,
"whiff_percent": 23.7,
"swing_percent": 46.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7627,
"command_and_miss": 0.0164,
"regression_edge": 0.4571,
"xwoba_edge": -0.8429,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.2,
"bb_edge": 0.175,
"pitch_design_score": -0.0715
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669461",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.58620610763555,
"release_spin_rate": 2399.3056061920533,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.58620610763555,
"release_spin_rate": 2399.3056061920533,
"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.5862,
"release_spin_rate": 2399.3056,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0715,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.511,
"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.3828,
"sample_weight": 1.0,
"run_prevention_factor": 1.0325,
"strikeout_factor": 0.9966,
"walk_factor": 0.986,
"homer_factor": 1.0837,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669461",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0325,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0325,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.986,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0837,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9966,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260923_STL@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_STL@PIT | home | Lake Bachar | Lake Bachar | True | 5.0 | 1.2 | -10 | 2 | 0 | -2 | 2/1 | 3/1 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.024,
"WHIP": 1.068,
"IP": 83.1,
"games_started": null,
"games_pitched": 50,
"role_avg_IP": 2.121,
"recent_avg_IP": 1.867,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3229,
"sample_weight": 1.0,
"run_prevention_factor": 0.9726,
"strikeout_factor": 1.0451,
"walk_factor": 1.02,
"homer_factor": 0.9734,
"regression_flag": "neutral",
"k_percent": 25.2,
"bb_percent": 10.1,
"woba": 0.288,
"xwoba": 0.29,
"barrel_percent": 7.8,
"hard_hit_percent": 34.6,
"whiff_percent": 29.7
},
"espn_rank": {
"rank": 143,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 83.1,
"season_ERA": 3.024,
"season_WHIP": 1.068,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.977,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7725,
"prior_weight": 0.2275
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669199",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 50,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.0,
"ER": 2.0,
"R": 2.0,
"H": 8.0,
"BB": 5.0,
"SO": 10.0,
"HR": 0.0,
"BF": 37.0,
"Pitches": 149.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4,
"R": 0.4,
"H": 1.6,
"BB": 1.0,
"SO": 2.0,
"HR": 0.0,
"BF": 7.4,
"Pitches": 29.8
},
"rates": {
"ERA": 2.25,
"WHIP": 1.625,
"ER_per_IP": 0.25,
"H_per_IP": 1.0,
"BB_per_IP": 0.625,
"SO_per_IP": 1.25,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 17.2,
"ER": 4.0,
"R": 4.0,
"H": 12.0,
"BB": 12.0,
"SO": 19.0,
"HR": 1.0,
"BF": 75.0,
"Pitches": 312.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4,
"R": 0.4,
"H": 1.2,
"BB": 1.2,
"SO": 1.9,
"HR": 0.1,
"BF": 7.5,
"Pitches": 31.2
},
"rates": {
"ERA": 2.0377,
"WHIP": 1.3585,
"ER_per_IP": 0.22642,
"H_per_IP": 0.67925,
"BB_per_IP": 0.67925,
"SO_per_IP": 1.07547,
"HR_per_IP": 0.0566
}
},
"season": {
"games": 50,
"totals": {
"IP": 83.1,
"ER": 28.0,
"R": 30.0,
"H": 56.0,
"BB": 33.0,
"SO": 87.0,
"HR": 12.0,
"BF": 339.0,
"Pitches": 1363.0
},
"per_game": {
"IP": 1.2,
"ER": 0.56,
"R": 0.6,
"H": 1.12,
"BB": 0.66,
"SO": 1.74,
"HR": 0.24,
"BF": 6.78,
"Pitches": 27.26
},
"rates": {
"ERA": 3.024,
"WHIP": 1.068,
"ER_per_IP": 0.336,
"H_per_IP": 0.672,
"BB_per_IP": 0.396,
"SO_per_IP": 1.044,
"HR_per_IP": 0.144
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 0.814,
"predicted_H": 2.211,
"predicted_BB": 1.411,
"predicted_SO": 2.834,
"predicted_HR": 0.184,
"predicted_ERA": 2.8438,
"predicted_WHIP": 1.4059
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4461,
"form_weight": 0.5539,
"form_reliability": 0.7725,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.977,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7725,
"prior_weight": 0.2275
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 0.814,
"final": 2.2353,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.211,
"final": 3.0091,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.411,
"final": 2.1199,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.834,
"final": 3.8003,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.184,
"final": 0.9942,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8438,
"final": 2.8438,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4059,
"final": 1.4059,
"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.2,
"ER": 4,
"H": 12,
"BB": 12,
"SO": 19,
"HR": 1,
"ERA": 2.0377358490566038,
"WHIP": 1.3584905660377358,
"K9": 9.679245283018867,
"HR9": 0.5094339622641509,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.8402639427280665,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.977,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7725,
"prior_weight": 0.2275
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 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_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669199",
"player_name": "Lake Bachar",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 157,
"wins": 80,
"losses": 77,
"win_pct": 0.5096,
"runs_scored": 750.0,
"runs_allowed": 719.0,
"run_differential": 31.0,
"run_differential_per_game": 0.1975,
"avg_runs_scored": 4.7771,
"avg_runs_allowed": 4.5796,
"offense_index": 1.0663,
"defense_index": 0.9783,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.6,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0674
},
"opponent": {
"team": "STL",
"games": 157,
"wins": 76,
"losses": 81,
"win_pct": 0.4841,
"runs_scored": 704.0,
"runs_allowed": 729.0,
"run_differential": -25.0,
"run_differential_per_game": -0.1592,
"avg_runs_scored": 4.4841,
"avg_runs_allowed": 4.6433,
"offense_index": 1.0009,
"defense_index": 0.9649,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.9,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0681
},
"edges": {
"quality_edge": 0.1355,
"offense_edge": 0.0663,
"opponent_offense_edge": 0.0009,
"defense_strength": -0.0217,
"opponent_defense_weakness": 0.0351,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0047,
"run_prevention": 0.9955,
"strikeout": 1.004
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669199",
"profile": {
"available": true,
"pitcher_id": "669199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 325.0,
"k_percent": 25.2,
"bb_percent": 10.1,
"woba": 0.288,
"xwoba": 0.29,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 34.6,
"avg_best_speed": 78.6165,
"avg_hyper_speed": 93.6408,
"whiff_percent": 29.7,
"swing_percent": 45.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4054,
"command_and_miss": 0.3921,
"regression_edge": -0.0571,
"xwoba_edge": 0.6143,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.4714,
"whiff_edge": 0.6571,
"bb_edge": -0.25,
"pitch_design_score": -0.005
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669199",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 31,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 31,
"pitch_usage": 0.0,
"release_speed": 89.77481249512137,
"release_spin_rate": 2697.8801239344625,
"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": 31,
"pitch_usage": 0.0,
"release_speed": 89.77481249512137,
"release_spin_rate": 2697.8801239344625,
"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.7748,
"release_spin_rate": 2697.8801,
"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.005,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0355,
"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.3229,
"sample_weight": 1.0,
"run_prevention_factor": 0.9726,
"strikeout_factor": 1.0451,
"walk_factor": 1.02,
"homer_factor": 0.9734,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669199",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9726,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9726,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9734,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0451,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260923_STL@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_TB@NYY | away | Mason Englert | Mason Englert | True | 5.0 | 3.2 | -4 | 3 | 8 | 5 | 9/9 | 2/1 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.542056074766355,
"WHIP": 1.4299065420560748,
"IP": 35.2,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 4.778,
"recent_avg_IP": 4.778,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3162,
"sample_weight": 0.512,
"run_prevention_factor": 1.0269,
"strikeout_factor": 0.9921,
"walk_factor": 0.959,
"homer_factor": 1.0928,
"regression_flag": "neutral",
"k_percent": 20.4,
"bb_percent": 5.1,
"woba": 0.37,
"xwoba": 0.362,
"barrel_percent": 14.9,
"hard_hit_percent": 38.1,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 565,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.266,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5924,
"prior_weight": 0.4076
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669438",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 8.0,
"R": 8.0,
"H": 24.0,
"BB": 4.0,
"SO": 22.0,
"HR": 5.0,
"BF": 97.0,
"Pitches": 382.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 1.6,
"H": 4.8,
"BB": 0.8,
"SO": 4.4,
"HR": 1.0,
"BF": 19.4,
"Pitches": 76.4
},
"rates": {
"ERA": 3.1304,
"WHIP": 1.2174,
"ER_per_IP": 0.34783,
"H_per_IP": 1.04348,
"BB_per_IP": 0.17391,
"SO_per_IP": 0.95652,
"HR_per_IP": 0.21739
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 29.0,
"ER": 11.0,
"R": 11.0,
"H": 31.0,
"BB": 7.0,
"SO": 28.0,
"HR": 7.0,
"BF": 124.0,
"Pitches": 480.0
},
"per_game": {
"IP": 3.0,
"ER": 1.1,
"R": 1.1,
"H": 3.1,
"BB": 0.7,
"SO": 2.8,
"HR": 0.7,
"BF": 12.4,
"Pitches": 48.0
},
"rates": {
"ERA": 3.4138,
"WHIP": 1.3103,
"ER_per_IP": 0.37931,
"H_per_IP": 1.06897,
"BB_per_IP": 0.24138,
"SO_per_IP": 0.96552,
"HR_per_IP": 0.24138
}
},
"season": {
"games": 14,
"totals": {
"IP": 35.2,
"ER": 18.0,
"R": 19.0,
"H": 43.0,
"BB": 8.0,
"SO": 32.0,
"HR": 9.0,
"BF": 157.0,
"Pitches": 596.0
},
"per_game": {
"IP": 2.2,
"ER": 1.2857,
"R": 1.3571,
"H": 3.0714,
"BB": 0.5714,
"SO": 2.2857,
"HR": 0.6429,
"BF": 11.2143,
"Pitches": 42.5714
},
"rates": {
"ERA": 4.5421,
"WHIP": 1.4299,
"ER_per_IP": 0.50467,
"H_per_IP": 1.20561,
"BB_per_IP": 0.2243,
"SO_per_IP": 0.8972,
"HR_per_IP": 0.25234
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.852,
"predicted_H": 4.398,
"predicted_BB": 1.167,
"predicted_SO": 3.982,
"predicted_HR": 0.837,
"predicted_ERA": 3.9501,
"predicted_WHIP": 1.3187
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5222,
"form_weight": 0.4778,
"form_reliability": 0.5924,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.266,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5924,
"prior_weight": 0.4076
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.852,
"final": 2.4515,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.398,
"final": 6.8012,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.167,
"final": 1.602,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 3.982,
"final": 6.0802,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.837,
"final": 0.3999,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9501,
"final": 3.9501,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3187,
"final": 1.3187,
"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": 29.0,
"ER": 11,
"H": 31,
"BB": 7,
"SO": 28,
"HR": 7,
"ERA": 3.413793103448276,
"WHIP": 1.3103448275862069,
"K9": 8.689655172413794,
"HR9": 2.1724137931034484,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-07-17T00:00:00"
},
"recent_form_boost": 0.8852801017500417,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.266,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5924,
"prior_weight": 0.4076
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669438",
"player_name": "Mason Englert",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.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": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 157,
"wins": 96,
"losses": 61,
"win_pct": 0.6115,
"runs_scored": 713.0,
"runs_allowed": 627.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5478,
"avg_runs_scored": 4.5414,
"avg_runs_allowed": 3.9936,
"offense_index": 1.0137,
"defense_index": 1.1218,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 2.0,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.267
},
"opponent": {
"team": "NYY",
"games": 157,
"wins": 90,
"losses": 67,
"win_pct": 0.5732,
"runs_scored": 716.0,
"runs_allowed": 582.0,
"run_differential": 134.0,
"run_differential_per_game": 0.8535,
"avg_runs_scored": 4.5605,
"avg_runs_allowed": 3.707,
"offense_index": 1.0179,
"defense_index": 1.2086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.167
},
"edges": {
"quality_edge": 0.1,
"offense_edge": 0.0137,
"opponent_offense_edge": 0.0179,
"defense_strength": 0.1218,
"opponent_defense_weakness": -0.2086,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0069,
"run_prevention": 0.9857,
"strikeout": 1.0016
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669438",
"profile": {
"available": true,
"pitcher_id": "669438",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 128.0,
"k_percent": 20.4,
"bb_percent": 5.1,
"woba": 0.37,
"xwoba": 0.362,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 14.9,
"hard_hit_percent": 38.1,
"avg_best_speed": 78.0977,
"avg_hyper_speed": 94.209,
"whiff_percent": 23.9,
"swing_percent": 52.7
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.1369,
"command_and_miss": 0.0436,
"regression_edge": 0.2286,
"xwoba_edge": -1.4429,
"barrel_edge": -1.7111,
"hard_hit_edge": -0.0286,
"whiff_edge": -0.1714,
"bb_edge": 1.0,
"pitch_design_score": -0.1879
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669438",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 68,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 86.50786631271794,
"release_spin_rate": 2291.8135563532314,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 86.50786631271794,
"release_spin_rate": 2291.8135563532314,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.5079,
"release_spin_rate": 2291.8136,
"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.1879,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3423,
"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.3162,
"sample_weight": 0.512,
"run_prevention_factor": 1.0269,
"strikeout_factor": 0.9921,
"walk_factor": 0.959,
"homer_factor": 1.0928,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669438",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0138,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0138,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.979,
"adjusted": 1
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0475,
"adjusted": 2
},
"predicted_SO": {
"original": 5.0,
"factor": 0.996,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 9,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 105,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +4."
}
],
"provenance": {
"prediction": "output/games/20260923_TB@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"
}
} |
| 20260923 | 20260923_TB@NYY | home | Gerrit Cole | Gerrit Cole | True | 5.2 | 5.2 | 0 | 1 | 2 | 1 | 2/3 | 5/3 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6346153846153846,
"WHIP": 1.1043956043956045,
"IP": 121.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.778,
"recent_avg_IP": 5.733,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0076,
"sample_weight": 1.0,
"run_prevention_factor": 0.9994,
"strikeout_factor": 0.9943,
"walk_factor": 0.906,
"homer_factor": 1.0602,
"regression_flag": "neutral",
"k_percent": 24.7,
"bb_percent": 4.4,
"woba": 0.303,
"xwoba": 0.302,
"barrel_percent": 8.7,
"hard_hit_percent": 45.2,
"whiff_percent": 21.3
},
"espn_rank": {
"rank": 61,
"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": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543037",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 17.0,
"R": 17.0,
"H": 33.0,
"BB": 2.0,
"SO": 23.0,
"HR": 9.0,
"BF": 121.0,
"Pitches": 420.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.4,
"H": 6.6,
"BB": 0.4,
"SO": 4.6,
"HR": 1.8,
"BF": 24.2,
"Pitches": 84.0
},
"rates": {
"ERA": 5.3372,
"WHIP": 1.2209,
"ER_per_IP": 0.59302,
"H_per_IP": 1.15116,
"BB_per_IP": 0.06977,
"SO_per_IP": 0.80233,
"HR_per_IP": 0.31395
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 22.0,
"R": 23.0,
"H": 56.0,
"BB": 10.0,
"SO": 57.0,
"HR": 10.0,
"BF": 242.0,
"Pitches": 880.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.3,
"H": 5.6,
"BB": 1.0,
"SO": 5.7,
"HR": 1.0,
"BF": 24.2,
"Pitches": 88.0
},
"rates": {
"ERA": 3.3371,
"WHIP": 1.1124,
"ER_per_IP": 0.37079,
"H_per_IP": 0.94382,
"BB_per_IP": 0.16854,
"SO_per_IP": 0.96067,
"HR_per_IP": 0.16854
}
},
"season": {
"games": 21,
"totals": {
"IP": 121.1,
"ER": 49.0,
"R": 50.0,
"H": 112.0,
"BB": 22.0,
"SO": 123.0,
"HR": 21.0,
"BF": 497.0,
"Pitches": 1846.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3333,
"R": 2.381,
"H": 5.3333,
"BB": 1.0476,
"SO": 5.8571,
"HR": 1.0,
"BF": 23.6667,
"Pitches": 87.9048
},
"rates": {
"ERA": 3.6346,
"WHIP": 1.1044,
"ER_per_IP": 0.40385,
"H_per_IP": 0.92308,
"BB_per_IP": 0.18132,
"SO_per_IP": 1.01374,
"HR_per_IP": 0.17308
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.786,
"predicted_H": 5.892,
"predicted_BB": 1.007,
"predicted_SO": 5.226,
"predicted_HR": 1.257,
"predicted_ERA": 4.3524,
"predicted_WHIP": 1.1976
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.786,
"final": 2.0158,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.892,
"final": 4.2136,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.007,
"final": 2.729,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.226,
"final": 4.266,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.257,
"final": 1.1462,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3524,
"final": 4.3524,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1976,
"final": 1.1976,
"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.1,
"ER": 22,
"H": 56,
"BB": 10,
"SO": 57,
"HR": 10,
"ERA": 3.3370786516853936,
"WHIP": 1.1123595505617978,
"K9": 8.646067415730338,
"HR9": 1.5168539325842698,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.8669441305183969,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 5.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 5,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"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": 5.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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": "NYY",
"games": 157,
"wins": 90,
"losses": 67,
"win_pct": 0.5732,
"runs_scored": 716.0,
"runs_allowed": 582.0,
"run_differential": 134.0,
"run_differential_per_game": 0.8535,
"avg_runs_scored": 4.5605,
"avg_runs_allowed": 3.707,
"offense_index": 1.0179,
"defense_index": 1.2086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.167
},
"opponent": {
"team": "TB",
"games": 157,
"wins": 96,
"losses": 61,
"win_pct": 0.6115,
"runs_scored": 713.0,
"runs_allowed": 627.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5478,
"avg_runs_scored": 4.5414,
"avg_runs_allowed": 3.9936,
"offense_index": 1.0137,
"defense_index": 1.1218,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 2.0,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.267
},
"edges": {
"quality_edge": -0.1,
"offense_edge": 0.0179,
"opponent_offense_edge": 0.0137,
"defense_strength": 0.2086,
"opponent_defense_weakness": -0.1218,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0017,
"run_prevention": 0.9863,
"strikeout": 0.9959
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 470.0,
"k_percent": 24.7,
"bb_percent": 4.4,
"woba": 0.303,
"xwoba": 0.302,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 45.2,
"avg_best_speed": 81.5573,
"avg_hyper_speed": 94.569,
"whiff_percent": 21.3,
"swing_percent": 49.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1134,
"command_and_miss": 0.225,
"regression_edge": 0.0286,
"xwoba_edge": 0.2714,
"barrel_edge": -0.3333,
"hard_hit_edge": -1.0429,
"whiff_edge": -0.5429,
"bb_edge": 1.175,
"pitch_design_score": 0.1217
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"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.0375,
"release_spin_rate": 2372.665,
"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.1217,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8695,
"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.0076,
"sample_weight": 1.0,
"run_prevention_factor": 0.9994,
"strikeout_factor": 0.9943,
"walk_factor": 0.906,
"homer_factor": 1.0602,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543037",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9994,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9994,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.906,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0602,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9943,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 5,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260923_TB@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"
}
} |
| 20260923 | 20260923_TOR@BAL | away | Max Scherzer | CJ Van Eyk | False | 5.0 | 5.0 | 0 | 3 | 4 | 1 | 7/4 | 1/0 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.068807339449541,
"WHIP": 1.3623853211009174,
"IP": 72.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.542,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2219,
"sample_weight": 1.0,
"run_prevention_factor": 1.0189,
"strikeout_factor": 0.9451,
"walk_factor": 1.014,
"homer_factor": 1.0169,
"regression_flag": "neutral",
"k_percent": 17.1,
"bb_percent": 9.8,
"woba": 0.331,
"xwoba": 0.32,
"barrel_percent": 8.8,
"hard_hit_percent": 34.6,
"whiff_percent": 20.3
},
"espn_rank": {
"rank": 775,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 12.0,
"R": 12.0,
"H": 20.0,
"BB": 11.0,
"SO": 22.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 421.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 4.0,
"BB": 2.2,
"SO": 4.4,
"HR": 0.4,
"BF": 22.6,
"Pitches": 84.2
},
"rates": {
"ERA": 3.9036,
"WHIP": 1.1205,
"ER_per_IP": 0.43373,
"H_per_IP": 0.72289,
"BB_per_IP": 0.39759,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 24.0,
"R": 24.0,
"H": 41.0,
"BB": 20.0,
"SO": 40.0,
"HR": 5.0,
"BF": 213.0,
"Pitches": 829.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 4.1,
"BB": 2.0,
"SO": 4.0,
"HR": 0.5,
"BF": 21.3,
"Pitches": 82.9
},
"rates": {
"ERA": 4.2632,
"WHIP": 1.2039,
"ER_per_IP": 0.47368,
"H_per_IP": 0.80921,
"BB_per_IP": 0.39474,
"SO_per_IP": 0.78947,
"HR_per_IP": 0.09868
}
},
"season": {
"games": 16,
"totals": {
"IP": 72.2,
"ER": 49.0,
"R": 49.0,
"H": 68.0,
"BB": 31.0,
"SO": 54.0,
"HR": 14.0,
"BF": 315.0,
"Pitches": 1254.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0625,
"R": 3.0625,
"H": 4.25,
"BB": 1.9375,
"SO": 3.375,
"HR": 0.875,
"BF": 19.6875,
"Pitches": 78.375
},
"rates": {
"ERA": 6.0688,
"WHIP": 1.3624,
"ER_per_IP": 0.67431,
"H_per_IP": 0.93578,
"BB_per_IP": 0.42661,
"SO_per_IP": 0.74312,
"HR_per_IP": 0.19266
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.584,
"predicted_H": 4.347,
"predicted_BB": 2.052,
"predicted_SO": 4.243,
"predicted_HR": 0.599,
"predicted_ERA": 4.4921,
"predicted_WHIP": 1.2359
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.584,
"final": 2.7714,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.347,
"final": 5.5424,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.052,
"final": 1.578,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.243,
"final": 3.6829,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.599,
"final": 0.7797,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4921,
"final": 4.4921,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2359,
"final": 1.2359,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 24,
"H": 41,
"BB": 20,
"SO": 40,
"HR": 5,
"ERA": 4.2631578947368425,
"WHIP": 1.2039473684210527,
"K9": 7.105263157894737,
"HR9": 0.8881578947368421,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9734177408081662,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 157,
"wins": 77,
"losses": 80,
"win_pct": 0.4904,
"runs_scored": 632.0,
"runs_allowed": 675.0,
"run_differential": -43.0,
"run_differential_per_game": -0.2739,
"avg_runs_scored": 4.0255,
"avg_runs_allowed": 4.2994,
"offense_index": 0.8949,
"defense_index": 1.0463,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.7,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0766
},
"opponent": {
"team": "BAL",
"games": 157,
"wins": 76,
"losses": 81,
"win_pct": 0.4841,
"runs_scored": 697.0,
"runs_allowed": 727.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1911,
"avg_runs_scored": 4.4395,
"avg_runs_allowed": 4.6306,
"offense_index": 0.9869,
"defense_index": 0.9715,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 3.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0369
},
"edges": {
"quality_edge": -0.0397,
"offense_edge": -0.1051,
"opponent_offense_edge": -0.0131,
"defense_strength": 0.0463,
"opponent_defense_weakness": 0.0285,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0003,
"run_prevention": 0.9953,
"strikeout": 0.9999
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 294.0,
"k_percent": 17.1,
"bb_percent": 9.8,
"woba": 0.331,
"xwoba": 0.32,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 34.6,
"avg_best_speed": 76.4694,
"avg_hyper_speed": 93.3859,
"whiff_percent": 20.3,
"swing_percent": 49.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1622,
"command_and_miss": -0.5836,
"regression_edge": 0.3143,
"xwoba_edge": -0.2429,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.4714,
"whiff_edge": -0.6857,
"bb_edge": -0.175,
"pitch_design_score": -0.1349
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.45516823346536,
"release_spin_rate": 2266.2043740371455,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.45516823346536,
"release_spin_rate": 2266.2043740371455,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4552,
"release_spin_rate": 2266.2044,
"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.1349,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9634,
"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.2219,
"sample_weight": 1.0,
"run_prevention_factor": 1.0189,
"strikeout_factor": 0.9451,
"walk_factor": 1.014,
"homer_factor": 1.0169,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "453286",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0189,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0189,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.014,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0169,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9451,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260923_TOR@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_TOR@BAL | home | Chris Bassitt | Trey Gibson | False | 5.0 | 6.2 | 5 | 3 | 0 | -3 | 6/3 | 0/2 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.639175257731959,
"WHIP": 1.5463917525773196,
"IP": 97.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.098,
"recent_avg_IP": 5.933,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3069,
"sample_weight": 1.0,
"run_prevention_factor": 1.0261,
"strikeout_factor": 0.9486,
"walk_factor": 0.986,
"homer_factor": 0.9805,
"regression_flag": "neutral",
"k_percent": 16.4,
"bb_percent": 8.4,
"woba": 0.346,
"xwoba": 0.339,
"barrel_percent": 5.0,
"hard_hit_percent": 37.2,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 233,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605135",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 12.0,
"R": 12.0,
"H": 30.0,
"BB": 11.0,
"SO": 26.0,
"HR": 3.0,
"BF": 129.0,
"Pitches": 479.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.4,
"H": 6.0,
"BB": 2.2,
"SO": 5.2,
"HR": 0.6,
"BF": 25.8,
"Pitches": 95.8
},
"rates": {
"ERA": 3.6404,
"WHIP": 1.382,
"ER_per_IP": 0.40449,
"H_per_IP": 1.01124,
"BB_per_IP": 0.37079,
"SO_per_IP": 0.8764,
"HR_per_IP": 0.10112
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 24.0,
"R": 24.0,
"H": 59.0,
"BB": 18.0,
"SO": 42.0,
"HR": 6.0,
"BF": 236.0,
"Pitches": 856.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 5.9,
"BB": 1.8,
"SO": 4.2,
"HR": 0.6,
"BF": 23.6,
"Pitches": 85.6
},
"rates": {
"ERA": 4.0,
"WHIP": 1.4259,
"ER_per_IP": 0.44444,
"H_per_IP": 1.09259,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.11111
}
},
"season": {
"games": 19,
"totals": {
"IP": 97.0,
"ER": 50.0,
"R": 51.0,
"H": 113.0,
"BB": 37.0,
"SO": 72.0,
"HR": 10.0,
"BF": 438.0,
"Pitches": 1641.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6316,
"R": 2.6842,
"H": 5.9474,
"BB": 1.9474,
"SO": 3.7895,
"HR": 0.5263,
"BF": 23.0526,
"Pitches": 86.3684
},
"rates": {
"ERA": 4.6392,
"WHIP": 1.5464,
"ER_per_IP": 0.51546,
"H_per_IP": 1.16495,
"BB_per_IP": 0.38144,
"SO_per_IP": 0.74227,
"HR_per_IP": 0.10309
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.543,
"predicted_H": 5.876,
"predicted_BB": 2.03,
"predicted_SO": 4.696,
"predicted_HR": 0.637,
"predicted_ERA": 4.0953,
"predicted_WHIP": 1.415
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.543,
"final": 2.3052,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.876,
"final": 5.4923,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.03,
"final": 1.1408,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.696,
"final": 6.1432,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.637,
"final": 0.358,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0953,
"final": 4.0953,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.415,
"final": 1.415,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 24,
"H": 59,
"BB": 18,
"SO": 42,
"HR": 6,
"ERA": 4.0,
"WHIP": 1.4259259259259258,
"K9": 7.0,
"HR9": 1.0,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.9493619415878932,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605135",
"player_name": "Chris Bassitt",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 157,
"wins": 76,
"losses": 81,
"win_pct": 0.4841,
"runs_scored": 697.0,
"runs_allowed": 727.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1911,
"avg_runs_scored": 4.4395,
"avg_runs_allowed": 4.6306,
"offense_index": 0.9869,
"defense_index": 0.9715,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 3.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0369
},
"opponent": {
"team": "TOR",
"games": 157,
"wins": 77,
"losses": 80,
"win_pct": 0.4904,
"runs_scored": 632.0,
"runs_allowed": 675.0,
"run_differential": -43.0,
"run_differential_per_game": -0.2739,
"avg_runs_scored": 4.0255,
"avg_runs_allowed": 4.2994,
"offense_index": 0.8949,
"defense_index": 1.0463,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.7,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0766
},
"edges": {
"quality_edge": 0.0397,
"offense_edge": -0.0131,
"opponent_offense_edge": -0.1051,
"defense_strength": -0.0285,
"opponent_defense_weakness": -0.0463,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0049,
"run_prevention": 0.984,
"strikeout": 1.0096
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605135",
"profile": {
"available": true,
"pitcher_id": "605135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 412.0,
"k_percent": 16.4,
"bb_percent": 8.4,
"woba": 0.346,
"xwoba": 0.339,
"sweet_spot_percent": 30.9,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 37.2,
"avg_best_speed": 76.9092,
"avg_hyper_speed": 93.7593,
"whiff_percent": 21.6,
"swing_percent": 46.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3186,
"command_and_miss": -0.4936,
"regression_edge": 0.2,
"xwoba_edge": -0.7857,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.1,
"whiff_edge": -0.5,
"bb_edge": 0.175,
"pitch_design_score": -0.2515
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605135",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 85.3723472409564,
"release_spin_rate": 2180.5493208905896,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 85.3723472409564,
"release_spin_rate": 2180.5493208905896,
"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.3723,
"release_spin_rate": 2180.5493,
"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.2515,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.7965,
"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.3069,
"sample_weight": 1.0,
"run_prevention_factor": 1.0261,
"strikeout_factor": 0.9486,
"walk_factor": 0.986,
"homer_factor": 0.9805,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605135",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0261,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0261,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.986,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9805,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9486,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260923_TOR@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_WAS@DET | away | Richard Lovelady | Richard Lovelady | True | 3.2 | 1.1 | -7 | 2 | 0 | -2 | 3/1 | 0/1 | 8/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.857142857142857,
"WHIP": 1.836734693877551,
"IP": 32.2,
"games_started": null,
"games_pitched": 36,
"role_avg_IP": 1.467,
"recent_avg_IP": 1.467,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.213,
"sample_weight": 0.564,
"run_prevention_factor": 1.0181,
"strikeout_factor": 0.9832,
"walk_factor": 1.0462,
"homer_factor": 0.9785,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 13.2,
"woba": 0.373,
"xwoba": 0.352,
"barrel_percent": 5.8,
"hard_hit_percent": 29.5,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 424,
"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": 6.655,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.571,
"prior_weight": 0.429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663992",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 36,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 3.0,
"ER": 2.0,
"R": 4.0,
"H": 6.0,
"BB": 0.0,
"SO": 3.0,
"HR": 1.0,
"BF": 16.0,
"Pitches": 65.0
},
"per_game": {
"IP": 0.2,
"ER": 0.4,
"R": 0.8,
"H": 1.2,
"BB": 0.0,
"SO": 0.6,
"HR": 0.2,
"BF": 3.2,
"Pitches": 13.0
},
"rates": {
"ERA": 6.0,
"WHIP": 2.0,
"ER_per_IP": 0.66667,
"H_per_IP": 2.0,
"BB_per_IP": 0.0,
"SO_per_IP": 1.0,
"HR_per_IP": 0.33333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 5.2,
"ER": 5.0,
"R": 7.0,
"H": 11.0,
"BB": 2.0,
"SO": 6.0,
"HR": 1.0,
"BF": 32.0,
"Pitches": 125.0
},
"per_game": {
"IP": 0.2,
"ER": 0.5,
"R": 0.7,
"H": 1.1,
"BB": 0.2,
"SO": 0.6,
"HR": 0.1,
"BF": 3.2,
"Pitches": 12.5
},
"rates": {
"ERA": 7.9412,
"WHIP": 2.2941,
"ER_per_IP": 0.88235,
"H_per_IP": 1.94118,
"BB_per_IP": 0.35294,
"SO_per_IP": 1.05882,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 36,
"totals": {
"IP": 32.2,
"ER": 14.0,
"R": 18.0,
"H": 39.0,
"BB": 21.0,
"SO": 30.0,
"HR": 4.0,
"BF": 159.0,
"Pitches": 592.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3889,
"R": 0.5,
"H": 1.0833,
"BB": 0.5833,
"SO": 0.8333,
"HR": 0.1111,
"BF": 4.4167,
"Pitches": 16.4444
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.8367,
"ER_per_IP": 0.42857,
"H_per_IP": 1.19388,
"BB_per_IP": 0.64286,
"SO_per_IP": 0.91837,
"HR_per_IP": 0.12245
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.401,
"predicted_H": 3.323,
"predicted_BB": 0.696,
"predicted_SO": 2.222,
"predicted_HR": 0.452,
"predicted_ERA": 5.537,
"predicted_WHIP": 1.7642
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5313,
"form_weight": 0.4687,
"form_reliability": 0.571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.655,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.571,
"prior_weight": 0.429
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 2.1,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.401,
"final": 1.7192,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.323,
"final": 3.1514,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.696,
"final": 0.3262,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 2.222,
"final": 5.2916,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.452,
"final": 0.7431,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.537,
"final": 5.537,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7642,
"final": 1.7642,
"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": 5.2,
"ER": 5,
"H": 11,
"BB": 2,
"SO": 6,
"HR": 1,
"ERA": 7.941176470588236,
"WHIP": 2.294117647058824,
"K9": 9.529411764705884,
"HR9": 1.5882352941176472,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.0777605704898245,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.655,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.571,
"prior_weight": 0.429
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663992",
"player_name": "Richard Lovelady",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"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": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 803.0,
"runs_allowed": 796.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0443,
"avg_runs_scored": 5.0823,
"avg_runs_allowed": 5.038,
"offense_index": 1.1298,
"defense_index": 0.8929,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0486
},
"opponent": {
"team": "DET",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 707.0,
"runs_allowed": 634.0,
"run_differential": 73.0,
"run_differential_per_game": 0.462,
"avg_runs_scored": 4.4747,
"avg_runs_allowed": 4.0127,
"offense_index": 0.9947,
"defense_index": 1.121,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.9,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0296
},
"edges": {
"quality_edge": 0.019,
"offense_edge": 0.1298,
"opponent_offense_edge": -0.0053,
"defense_strength": -0.1071,
"opponent_defense_weakness": -0.121,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9978,
"run_prevention": 1.0089,
"strikeout": 1.001
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663992",
"profile": {
"available": true,
"pitcher_id": "663992",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 141.0,
"k_percent": 18.9,
"bb_percent": 13.2,
"woba": 0.373,
"xwoba": 0.352,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 5.8,
"hard_hit_percent": 29.5,
"avg_best_speed": 75.0815,
"avg_hyper_speed": 93.2021,
"whiff_percent": 22.9,
"swing_percent": 45.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5227,
"command_and_miss": -0.5079,
"regression_edge": 0.6,
"xwoba_edge": -1.1571,
"barrel_edge": 0.3111,
"hard_hit_edge": 1.2,
"whiff_edge": -0.3143,
"bb_edge": -1.025,
"pitch_design_score": -0.16
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663992",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 10,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 10,
"pitch_usage": 0.0,
"release_speed": 87.007013701801,
"release_spin_rate": 2396.295259915072,
"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": 10,
"pitch_usage": 0.0,
"release_speed": 87.007013701801,
"release_spin_rate": 2396.295259915072,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.007,
"release_spin_rate": 2396.2953,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.16,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1427,
"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.213,
"sample_weight": 0.564,
"run_prevention_factor": 1.0181,
"strikeout_factor": 0.9832,
"walk_factor": 1.0462,
"homer_factor": 0.9785,
"woba_minus_xwoba": 0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663992",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0102,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0102,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0261,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9879,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9905,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 14,
"Pitches": 67,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260923_WAS@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260923 | 20260923_WAS@DET | home | Framber Valdez | Framber Valdez | True | 6.0 | 5.1 | -2 | 2 | 2 | 0 | 2/4 | 4/3 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.055335968379447,
"WHIP": 1.3636363636363638,
"IP": 168.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.622,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2059,
"sample_weight": 1.0,
"run_prevention_factor": 1.0175,
"strikeout_factor": 0.9474,
"walk_factor": 0.992,
"homer_factor": 1.0046,
"regression_flag": "neutral",
"k_percent": 17.5,
"bb_percent": 8.7,
"woba": 0.317,
"xwoba": 0.322,
"barrel_percent": 5.7,
"hard_hit_percent": 41.8,
"whiff_percent": 20.3
},
"espn_rank": {
"rank": 136,
"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": "664285",
"report_date": "20260923",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 9.0,
"R": 11.0,
"H": 26.0,
"BB": 10.0,
"SO": 18.0,
"HR": 3.0,
"BF": 123.0,
"Pitches": 463.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 2.2,
"H": 5.2,
"BB": 2.0,
"SO": 3.6,
"HR": 0.6,
"BF": 24.6,
"Pitches": 92.6
},
"rates": {
"ERA": 2.7,
"WHIP": 1.2,
"ER_per_IP": 0.3,
"H_per_IP": 0.86667,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.6,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 21.0,
"R": 25.0,
"H": 55.0,
"BB": 26.0,
"SO": 41.0,
"HR": 5.0,
"BF": 257.0,
"Pitches": 944.0
},
"per_game": {
"IP": 6.0,
"ER": 2.1,
"R": 2.5,
"H": 5.5,
"BB": 2.6,
"SO": 4.1,
"HR": 0.5,
"BF": 25.7,
"Pitches": 94.4
},
"rates": {
"ERA": 3.1326,
"WHIP": 1.3425,
"ER_per_IP": 0.34807,
"H_per_IP": 0.9116,
"BB_per_IP": 0.43094,
"SO_per_IP": 0.67956,
"HR_per_IP": 0.08287
}
},
"season": {
"games": 30,
"totals": {
"IP": 168.2,
"ER": 76.0,
"R": 85.0,
"H": 166.0,
"BB": 64.0,
"SO": 129.0,
"HR": 16.0,
"BF": 736.0,
"Pitches": 2681.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5333,
"R": 2.8333,
"H": 5.5333,
"BB": 2.1333,
"SO": 4.3,
"HR": 0.5333,
"BF": 24.5333,
"Pitches": 89.3667
},
"rates": {
"ERA": 4.0553,
"WHIP": 1.3636,
"ER_per_IP": 0.45059,
"H_per_IP": 0.98419,
"BB_per_IP": 0.37945,
"SO_per_IP": 0.76482,
"HR_per_IP": 0.09486
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.2,
"predicted_H": 5.447,
"predicted_BB": 2.239,
"predicted_SO": 4.162,
"predicted_HR": 0.599,
"predicted_ERA": 3.3317,
"predicted_WHIP": 1.2932
}
},
"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.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.2,
"final": 2.1179,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.447,
"final": 4.0324,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.239,
"final": 2.9617,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.162,
"final": 5.3266,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.599,
"final": 0.3532,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3317,
"final": 3.3317,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2932,
"final": 1.2932,
"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.1,
"ER": 21,
"H": 55,
"BB": 26,
"SO": 41,
"HR": 5,
"ERA": 3.1325966850828726,
"WHIP": 1.3425414364640884,
"K9": 6.116022099447513,
"HR9": 0.7458563535911602,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 0.8496944564231705,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 7.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664285",
"player_name": "Framber Valdez",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "DET",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 707.0,
"runs_allowed": 634.0,
"run_differential": 73.0,
"run_differential_per_game": 0.462,
"avg_runs_scored": 4.4747,
"avg_runs_allowed": 4.0127,
"offense_index": 0.9947,
"defense_index": 1.121,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.9,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0296
},
"opponent": {
"team": "WAS",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 803.0,
"runs_allowed": 796.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0443,
"avg_runs_scored": 5.0823,
"avg_runs_allowed": 5.038,
"offense_index": 1.1298,
"defense_index": 0.8929,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0486
},
"edges": {
"quality_edge": -0.019,
"offense_edge": -0.0053,
"opponent_offense_edge": 0.1298,
"defense_strength": 0.121,
"opponent_defense_weakness": 0.1071,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9977,
"run_prevention": 1.0096,
"strikeout": 0.989
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664285",
"profile": {
"available": true,
"pitcher_id": "664285",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 709.0,
"k_percent": 17.5,
"bb_percent": 8.7,
"woba": 0.317,
"xwoba": 0.322,
"sweet_spot_percent": 28.2,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 41.8,
"avg_best_speed": 79.314,
"avg_hyper_speed": 94.6485,
"whiff_percent": 20.3,
"swing_percent": 46.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 21.9,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.3115,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5964,
"avg_hyper_speed": 93.8957,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0953,
"command_and_miss": -0.5029,
"regression_edge": -0.1429,
"xwoba_edge": -0.3,
"barrel_edge": 0.3333,
"hard_hit_edge": -0.5571,
"whiff_edge": -0.6857,
"bb_edge": 0.1,
"pitch_design_score": -0.0943
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664285",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.18041594178791,
"release_spin_rate": 2286.863141165475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.18041594178791,
"release_spin_rate": 2286.863141165475,
"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.1804,
"release_spin_rate": 2286.8631,
"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.0943,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6733,
"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.2059,
"sample_weight": 1.0,
"run_prevention_factor": 1.0175,
"strikeout_factor": 0.9474,
"walk_factor": 0.992,
"homer_factor": 1.0046,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "664285",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0175,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0175,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.992,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0046,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9474,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260923_WAS@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_ARI@COL | away | Eduardo Rodriguez | Eduardo Rodriguez | True | 5.2 | 6.0 | 1 | 3 | 2 | -1 | 9/9 | 1/0 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8911070780399277,
"WHIP": 1.2304900181488203,
"IP": 183.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.925,
"recent_avg_IP": 5.733,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1048,
"sample_weight": 1.0,
"run_prevention_factor": 1.0089,
"strikeout_factor": 0.9611,
"walk_factor": 0.98,
"homer_factor": 0.9833,
"regression_flag": "neutral",
"k_percent": 18.4,
"bb_percent": 8.1,
"woba": 0.298,
"xwoba": 0.318,
"barrel_percent": 7.5,
"hard_hit_percent": 33.0,
"whiff_percent": 21.9
},
"espn_rank": {
"rank": 12,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "593958",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 14.0,
"R": 17.0,
"H": 26.0,
"BB": 13.0,
"SO": 30.0,
"HR": 4.0,
"BF": 126.0,
"Pitches": 505.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 3.4,
"H": 5.2,
"BB": 2.6,
"SO": 6.0,
"HR": 0.8,
"BF": 25.2,
"Pitches": 101.0
},
"rates": {
"ERA": 4.3953,
"WHIP": 1.3605,
"ER_per_IP": 0.48837,
"H_per_IP": 0.90698,
"BB_per_IP": 0.45349,
"SO_per_IP": 1.04651,
"HR_per_IP": 0.13953
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 23.0,
"R": 28.0,
"H": 56.0,
"BB": 18.0,
"SO": 54.0,
"HR": 5.0,
"BF": 256.0,
"Pitches": 1022.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.8,
"H": 5.6,
"BB": 1.8,
"SO": 5.4,
"HR": 0.5,
"BF": 25.6,
"Pitches": 102.2
},
"rates": {
"ERA": 3.3934,
"WHIP": 1.2131,
"ER_per_IP": 0.37705,
"H_per_IP": 0.91803,
"BB_per_IP": 0.29508,
"SO_per_IP": 0.88525,
"HR_per_IP": 0.08197
}
},
"season": {
"games": 31,
"totals": {
"IP": 183.2,
"ER": 59.0,
"R": 66.0,
"H": 164.0,
"BB": 62.0,
"SO": 140.0,
"HR": 18.0,
"BF": 761.0,
"Pitches": 2975.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9032,
"R": 2.129,
"H": 5.2903,
"BB": 2.0,
"SO": 4.5161,
"HR": 0.5806,
"BF": 24.5484,
"Pitches": 95.9677
},
"rates": {
"ERA": 2.8911,
"WHIP": 1.2305,
"ER_per_IP": 0.32123,
"H_per_IP": 0.89292,
"BB_per_IP": 0.33757,
"SO_per_IP": 0.76225,
"HR_per_IP": 0.098
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.499,
"predicted_H": 5.349,
"predicted_BB": 2.184,
"predicted_SO": 5.439,
"predicted_HR": 0.677,
"predicted_ERA": 3.8621,
"predicted_WHIP": 1.2934
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.499,
"final": 3.1124,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.349,
"final": 6.8411,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.184,
"final": 1.7001,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.439,
"final": 5.6683,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.677,
"final": 0.4003,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8621,
"final": 3.8621,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2934,
"final": 1.2934,
"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": 61.0,
"ER": 23,
"H": 56,
"BB": 18,
"SO": 54,
"HR": 5,
"ERA": 3.39344262295082,
"WHIP": 1.213114754098361,
"K9": 7.9672131147541,
"HR9": 0.7377049180327869,
"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-18T00:00:00"
},
"recent_form_boost": 0.8749678331756804,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 9.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"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": 9,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "593958",
"player_name": "Eduardo Rodriguez",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 158,
"wins": 84,
"losses": 74,
"win_pct": 0.5316,
"runs_scored": 705.0,
"runs_allowed": 699.0,
"run_differential": 6.0,
"run_differential_per_game": 0.038,
"avg_runs_scored": 4.462,
"avg_runs_allowed": 4.4241,
"offense_index": 0.9946,
"defense_index": 1.0141,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.9,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0315
},
"opponent": {
"team": "COL",
"games": 158,
"wins": 57,
"losses": 101,
"win_pct": 0.3608,
"runs_scored": 732.0,
"runs_allowed": 916.0,
"run_differential": -184.0,
"run_differential_per_game": -1.1646,
"avg_runs_scored": 4.6329,
"avg_runs_allowed": 5.7975,
"offense_index": 1.0326,
"defense_index": 0.7739,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.9,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.3661
},
"edges": {
"quality_edge": 0.3976,
"offense_edge": -0.0054,
"opponent_offense_edge": 0.0326,
"defense_strength": 0.0141,
"opponent_defense_weakness": 0.2261,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.015,
"run_prevention": 0.9839,
"strikeout": 1.0093
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "593958",
"profile": {
"available": true,
"pitcher_id": "593958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 732.0,
"k_percent": 18.4,
"bb_percent": 8.1,
"woba": 0.298,
"xwoba": 0.318,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 33.0,
"avg_best_speed": 76.0784,
"avg_hyper_speed": 93.2678,
"whiff_percent": 21.9,
"swing_percent": 48.4
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0858,
"command_and_miss": -0.3414,
"regression_edge": -0.5714,
"xwoba_edge": -0.2,
"barrel_edge": -0.0667,
"hard_hit_edge": 0.7,
"whiff_edge": -0.4571,
"bb_edge": 0.25,
"pitch_design_score": -0.0867
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "593958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 100,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 100,
"pitch_usage": 0.0,
"release_speed": 88.31577015688,
"release_spin_rate": 2173.932775026911,
"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": 100,
"pitch_usage": 0.0,
"release_speed": 88.31577015688,
"release_spin_rate": 2173.932775026911,
"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.3158,
"release_spin_rate": 2173.9328,
"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.0867,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6192,
"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.1048,
"sample_weight": 1.0,
"run_prevention_factor": 1.0089,
"strikeout_factor": 0.9611,
"walk_factor": 0.98,
"homer_factor": 0.9833,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "593958",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0089,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0089,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9833,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9611,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 9,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "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/20260924_ARI@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_ARI@COL | home | Tanner Gordon | Tanner Gordon | True | 4.1 | 3.1 | -3 | 3 | 10 | 7 | 7/12 | 1/4 | 1/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.009966777408638,
"WHIP": 1.5548172757475083,
"IP": 100.1,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 4.727,
"recent_avg_IP": 4.733,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3683,
"sample_weight": 1.0,
"run_prevention_factor": 1.0313,
"strikeout_factor": 0.9663,
"walk_factor": 0.908,
"homer_factor": 1.105,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.8,
"bb_percent": 4.5,
"woba": 0.39,
"xwoba": 0.335,
"barrel_percent": 10.5,
"hard_hit_percent": 42.4,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 296,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "685299",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 18.0,
"R": 18.0,
"H": 37.0,
"BB": 5.0,
"SO": 20.0,
"HR": 3.0,
"BF": 110.0,
"Pitches": 403.0
},
"per_game": {
"IP": 4.2,
"ER": 3.6,
"R": 3.6,
"H": 7.4,
"BB": 1.0,
"SO": 4.0,
"HR": 0.6,
"BF": 22.0,
"Pitches": 80.6
},
"rates": {
"ERA": 6.8451,
"WHIP": 1.7746,
"ER_per_IP": 0.76056,
"H_per_IP": 1.56338,
"BB_per_IP": 0.21127,
"SO_per_IP": 0.84507,
"HR_per_IP": 0.12676
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.1,
"ER": 30.0,
"R": 32.0,
"H": 63.0,
"BB": 8.0,
"SO": 35.0,
"HR": 6.0,
"BF": 200.0,
"Pitches": 689.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.2,
"H": 6.3,
"BB": 0.8,
"SO": 3.5,
"HR": 0.6,
"BF": 20.0,
"Pitches": 68.9
},
"rates": {
"ERA": 6.0902,
"WHIP": 1.6015,
"ER_per_IP": 0.67669,
"H_per_IP": 1.42105,
"BB_per_IP": 0.18045,
"SO_per_IP": 0.78947,
"HR_per_IP": 0.13534
}
},
"season": {
"games": 23,
"totals": {
"IP": 100.1,
"ER": 67.0,
"R": 69.0,
"H": 136.0,
"BB": 20.0,
"SO": 84.0,
"HR": 19.0,
"BF": 448.0,
"Pitches": 1596.0
},
"per_game": {
"IP": 4.1,
"ER": 2.913,
"R": 3.0,
"H": 5.913,
"BB": 0.8696,
"SO": 3.6522,
"HR": 0.8261,
"BF": 19.4783,
"Pitches": 69.3913
},
"rates": {
"ERA": 6.01,
"WHIP": 1.5548,
"ER_per_IP": 0.66777,
"H_per_IP": 1.35548,
"BB_per_IP": 0.19934,
"SO_per_IP": 0.83721,
"HR_per_IP": 0.18937
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.055,
"predicted_H": 6.253,
"predicted_BB": 1.038,
"predicted_SO": 3.813,
"predicted_HR": 0.647,
"predicted_ERA": 6.0891,
"predicted_WHIP": 1.6144
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.055,
"final": 3.0316,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 6.253,
"final": 6.5708,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.038,
"final": 1.0218,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.813,
"final": 2.6162,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.647,
"final": 0.7972,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.0891,
"final": 6.0891,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6144,
"final": 1.6144,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 30,
"H": 63,
"BB": 8,
"SO": 35,
"HR": 6,
"ERA": 6.090225563909775,
"WHIP": 1.6015037593984964,
"K9": 7.105263157894737,
"HR9": 1.218045112781955,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 1.1880656391660662,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 1,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "685299",
"player_name": "Tanner Gordon",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 3.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 158,
"wins": 57,
"losses": 101,
"win_pct": 0.3608,
"runs_scored": 732.0,
"runs_allowed": 916.0,
"run_differential": -184.0,
"run_differential_per_game": -1.1646,
"avg_runs_scored": 4.6329,
"avg_runs_allowed": 5.7975,
"offense_index": 1.0326,
"defense_index": 0.7739,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.9,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.3661
},
"opponent": {
"team": "ARI",
"games": 158,
"wins": 84,
"losses": 74,
"win_pct": 0.5316,
"runs_scored": 705.0,
"runs_allowed": 699.0,
"run_differential": 6.0,
"run_differential_per_game": 0.038,
"avg_runs_scored": 4.462,
"avg_runs_allowed": 4.4241,
"offense_index": 0.9946,
"defense_index": 1.0141,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.9,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0315
},
"edges": {
"quality_edge": -0.3976,
"offense_edge": 0.0326,
"opponent_offense_edge": -0.0054,
"defense_strength": -0.2261,
"opponent_defense_weakness": -0.0141,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9775,
"run_prevention": 1.0416,
"strikeout": 0.9885
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "685299",
"profile": {
"available": true,
"pitcher_id": "685299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 422.0,
"k_percent": 18.8,
"bb_percent": 4.5,
"woba": 0.39,
"xwoba": 0.335,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 42.4,
"avg_best_speed": 80.9892,
"avg_hyper_speed": 94.5821,
"whiff_percent": 22.4,
"swing_percent": 53.3
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8774,
"command_and_miss": -0.1107,
"regression_edge": 1.5714,
"xwoba_edge": -0.6857,
"barrel_edge": -0.7333,
"hard_hit_edge": -0.6429,
"whiff_edge": -0.3857,
"bb_edge": 1.15,
"pitch_design_score": -0.0666
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "685299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 88.67473641018984,
"release_spin_rate": 2166.0467400522407,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 88.67473641018984,
"release_spin_rate": 2166.0467400522407,
"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.6747,
"release_spin_rate": 2166.0467,
"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.0666,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4756,
"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.3683,
"sample_weight": 1.0,
"run_prevention_factor": 1.0313,
"strikeout_factor": 0.9663,
"walk_factor": 0.908,
"homer_factor": 1.105,
"woba_minus_xwoba": 0.055,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "685299",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0313,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.0313,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.908,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.105,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9663,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 1,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 7",
"detail": "Actual minus predicted earned runs was +7; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260924_ARI@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_CHW@KC | away | David Sandlin | David Sandlin | True | 5.0 | 6.0 | 3 | 3 | 1 | -2 | 3/5 | 3/0 | 10/7 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 6.29126213592233,
"WHIP": 1.2815533980582523,
"IP": 34.1,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 5.133,
"recent_avg_IP": 5.133,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.023,
"sample_weight": 0.504,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0009,
"walk_factor": 0.999,
"homer_factor": 0.9964,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 9.0,
"woba": 0.323,
"xwoba": 0.31,
"barrel_percent": 8.2,
"hard_hit_percent": 33.7,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 801,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "689818",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 15.0,
"R": 18.0,
"H": 22.0,
"BB": 9.0,
"SO": 25.0,
"HR": 4.0,
"BF": 103.0,
"Pitches": 412.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.6,
"H": 4.4,
"BB": 1.8,
"SO": 5.0,
"HR": 0.8,
"BF": 20.6,
"Pitches": 82.4
},
"rates": {
"ERA": 5.5479,
"WHIP": 1.274,
"ER_per_IP": 0.61644,
"H_per_IP": 0.90411,
"BB_per_IP": 0.36986,
"SO_per_IP": 1.0274,
"HR_per_IP": 0.16438
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 34.1,
"ER": 24.0,
"R": 27.0,
"H": 31.0,
"BB": 13.0,
"SO": 33.0,
"HR": 6.0,
"BF": 145.0,
"Pitches": 553.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4286,
"R": 3.8571,
"H": 4.4286,
"BB": 1.8571,
"SO": 4.7143,
"HR": 0.8571,
"BF": 20.7143,
"Pitches": 79.0
},
"rates": {
"ERA": 6.2913,
"WHIP": 1.2816,
"ER_per_IP": 0.69903,
"H_per_IP": 0.90291,
"BB_per_IP": 0.37864,
"SO_per_IP": 0.96117,
"HR_per_IP": 0.17476
}
},
"season": {
"games": 7,
"totals": {
"IP": 34.1,
"ER": 24.0,
"R": 27.0,
"H": 31.0,
"BB": 13.0,
"SO": 33.0,
"HR": 6.0,
"BF": 145.0,
"Pitches": 553.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4286,
"R": 3.8571,
"H": 4.4286,
"BB": 1.8571,
"SO": 4.7143,
"HR": 0.8571,
"BF": 20.7143,
"Pitches": 79.0
},
"rates": {
"ERA": 6.2913,
"WHIP": 1.2816,
"ER_per_IP": 0.69903,
"H_per_IP": 0.90291,
"BB_per_IP": 0.37864,
"SO_per_IP": 0.96117,
"HR_per_IP": 0.17476
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.919,
"predicted_H": 4.683,
"predicted_BB": 1.868,
"predicted_SO": 4.903,
"predicted_HR": 0.795,
"predicted_ERA": 5.2539,
"predicted_WHIP": 1.3102
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.919,
"final": 2.9616,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.683,
"final": 2.7455,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.868,
"final": 2.4635,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 4.903,
"final": 7.0583,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.795,
"final": 0.3768,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.2539,
"final": 5.2539,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3102,
"final": 1.3102,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 34.1,
"ER": 24,
"H": 31,
"BB": 13,
"SO": 33,
"HR": 6,
"ERA": 6.291262135922331,
"WHIP": 1.2815533980582525,
"K9": 8.650485436893206,
"HR9": 1.5728155339805827,
"games_pitched": 7,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 1.2026834944839726,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689818",
"player_name": "David Sandlin",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 10.0,
"delta": 1.0,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 9.0,
"after": 10.0,
"delta": 1.0,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 10.0,
"delta": 1.0,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "boosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 158,
"wins": 81,
"losses": 77,
"win_pct": 0.5127,
"runs_scored": 751.0,
"runs_allowed": 707.0,
"run_differential": 44.0,
"run_differential_per_game": 0.2785,
"avg_runs_scored": 4.7532,
"avg_runs_allowed": 4.4747,
"offense_index": 1.0594,
"defense_index": 1.0026,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.9,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0449
},
"opponent": {
"team": "KC",
"games": 158,
"wins": 68,
"losses": 90,
"win_pct": 0.4304,
"runs_scored": 672.0,
"runs_allowed": 776.0,
"run_differential": -104.0,
"run_differential_per_game": -0.6582,
"avg_runs_scored": 4.2532,
"avg_runs_allowed": 4.9114,
"offense_index": 0.948,
"defense_index": 0.9135,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.7,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.2448
},
"edges": {
"quality_edge": 0.2897,
"offense_edge": 0.0594,
"opponent_offense_edge": -0.052,
"defense_strength": 0.0026,
"opponent_defense_weakness": 0.0865,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0137,
"run_prevention": 0.9769,
"strikeout": 1.0129
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689818",
"profile": {
"available": true,
"pitcher_id": "689818",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 126.0,
"k_percent": 22.8,
"bb_percent": 9.0,
"woba": 0.323,
"xwoba": 0.31,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 33.7,
"avg_best_speed": 75.7945,
"avg_hyper_speed": 93.0105,
"whiff_percent": 24.6,
"swing_percent": 44.8
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0078,
"command_and_miss": 0.0314,
"regression_edge": 0.3714,
"xwoba_edge": 0.0286,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.6,
"whiff_edge": -0.0714,
"bb_edge": 0.025,
"pitch_design_score": 0.0587
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "689818",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.91118713178139,
"release_spin_rate": 2319.243590227783,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.91118713178139,
"release_spin_rate": 2319.243590227783,
"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.9112,
"release_spin_rate": 2319.2436,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0587,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.419,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.023,
"sample_weight": 0.504,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0009,
"walk_factor": 0.999,
"homer_factor": 0.9964,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "689818",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.999,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.999,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9995,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9982,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0005,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 10,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260924_CHW@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_CHW@KC | home | Randy Dobnak | Randy Dobnak | True | 5.2 | 1.1 | -13 | 2 | 4 | 2 | 2/6 | 5/1 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0821917808219177,
"WHIP": 1.3287671232876712,
"IP": 73.0,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 5.278,
"recent_avg_IP": 5.467,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3241,
"sample_weight": 1.0,
"run_prevention_factor": 1.0275,
"strikeout_factor": 0.9291,
"walk_factor": 0.98,
"homer_factor": 0.983,
"regression_flag": "neutral",
"k_percent": 15.6,
"bb_percent": 8.1,
"woba": 0.316,
"xwoba": 0.329,
"barrel_percent": 4.8,
"hard_hit_percent": 39.7,
"whiff_percent": 19.1
},
"espn_rank": {
"rank": 97,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 73.0,
"season_ERA": 3.082,
"season_WHIP": 1.329,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677976",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 17.0,
"R": 17.0,
"H": 28.0,
"BB": 5.0,
"SO": 19.0,
"HR": 5.0,
"BF": 112.0,
"Pitches": 417.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.4,
"H": 5.6,
"BB": 1.0,
"SO": 3.8,
"HR": 1.0,
"BF": 22.4,
"Pitches": 83.4
},
"rates": {
"ERA": 5.5976,
"WHIP": 1.2073,
"ER_per_IP": 0.62195,
"H_per_IP": 1.02439,
"BB_per_IP": 0.18293,
"SO_per_IP": 0.69512,
"HR_per_IP": 0.18293
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 22.0,
"R": 22.0,
"H": 55.0,
"BB": 16.0,
"SO": 38.0,
"HR": 5.0,
"BF": 228.0,
"Pitches": 891.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 5.5,
"BB": 1.6,
"SO": 3.8,
"HR": 0.5,
"BF": 22.8,
"Pitches": 89.1
},
"rates": {
"ERA": 3.6667,
"WHIP": 1.3148,
"ER_per_IP": 0.40741,
"H_per_IP": 1.01852,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.7037,
"HR_per_IP": 0.09259
}
},
"season": {
"games": 14,
"totals": {
"IP": 73.0,
"ER": 25.0,
"R": 25.0,
"H": 72.0,
"BB": 25.0,
"SO": 48.0,
"HR": 7.0,
"BF": 308.0,
"Pitches": 1222.0
},
"per_game": {
"IP": 5.1,
"ER": 1.7857,
"R": 1.7857,
"H": 5.1429,
"BB": 1.7857,
"SO": 3.4286,
"HR": 0.5,
"BF": 22.0,
"Pitches": 87.2857
},
"rates": {
"ERA": 3.0822,
"WHIP": 1.3288,
"ER_per_IP": 0.34247,
"H_per_IP": 0.9863,
"BB_per_IP": 0.34247,
"SO_per_IP": 0.65753,
"HR_per_IP": 0.09589
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.69,
"predicted_H": 5.455,
"predicted_BB": 1.553,
"predicted_SO": 4.096,
"predicted_HR": 0.746,
"predicted_ERA": 4.4652,
"predicted_WHIP": 1.2927
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7368,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.69,
"final": 2.3718,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.455,
"final": 3.8615,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.553,
"final": 3.1428,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.096,
"final": 4.9741,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.746,
"final": 1.3243,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4652,
"final": 4.4652,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2927,
"final": 1.2927,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 22,
"H": 55,
"BB": 16,
"SO": 38,
"HR": 5,
"ERA": 3.6666666666666665,
"WHIP": 1.3148148148148149,
"K9": 6.333333333333333,
"HR9": 0.8333333333333334,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.9082480396116244,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 5.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
}
},
{
"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": 2,
"predicted_BB": 5,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677976",
"player_name": "Randy Dobnak",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"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": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 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": 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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 158,
"wins": 68,
"losses": 90,
"win_pct": 0.4304,
"runs_scored": 672.0,
"runs_allowed": 776.0,
"run_differential": -104.0,
"run_differential_per_game": -0.6582,
"avg_runs_scored": 4.2532,
"avg_runs_allowed": 4.9114,
"offense_index": 0.948,
"defense_index": 0.9135,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.7,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.2448
},
"opponent": {
"team": "CHW",
"games": 158,
"wins": 81,
"losses": 77,
"win_pct": 0.5127,
"runs_scored": 751.0,
"runs_allowed": 707.0,
"run_differential": 44.0,
"run_differential_per_game": 0.2785,
"avg_runs_scored": 4.7532,
"avg_runs_allowed": 4.4747,
"offense_index": 1.0594,
"defense_index": 1.0026,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.9,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0449
},
"edges": {
"quality_edge": -0.2897,
"offense_edge": -0.052,
"opponent_offense_edge": 0.0594,
"defense_strength": -0.0865,
"opponent_defense_weakness": -0.0026,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9834,
"run_prevention": 1.0326,
"strikeout": 0.9866
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677976",
"profile": {
"available": true,
"pitcher_id": "677976",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 287.0,
"k_percent": 15.6,
"bb_percent": 8.1,
"woba": 0.316,
"xwoba": 0.329,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 4.8,
"hard_hit_percent": 39.7,
"avg_best_speed": 79.6117,
"avg_hyper_speed": 94.5829,
"whiff_percent": 19.1,
"swing_percent": 45.4
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1861,
"command_and_miss": -0.6614,
"regression_edge": -0.3714,
"xwoba_edge": -0.5143,
"barrel_edge": 0.5333,
"hard_hit_edge": -0.2571,
"whiff_edge": -0.8571,
"bb_edge": 0.25,
"pitch_design_score": -0.1347
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677976",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 87.45761123700552,
"release_spin_rate": 2014.207682509976,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 87.45761123700552,
"release_spin_rate": 2014.207682509976,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4576,
"release_spin_rate": 2014.2077,
"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.1347,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9624,
"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.3241,
"sample_weight": 1.0,
"run_prevention_factor": 1.0275,
"strikeout_factor": 0.9291,
"walk_factor": 0.98,
"homer_factor": 0.983,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "677976",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0275,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0275,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.98,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.983,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9291,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 5,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -13 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260924_CHW@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_CIN@ATL | away | Brady Singer | Brady Singer | True | 4.0 | 3.0 | -3 | 4 | 5 | 1 | 7/7 | 1/2 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.6688311688311686,
"WHIP": 1.5649350649350648,
"IP": 154.0,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.133,
"recent_avg_IP": 4.467,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6784,
"sample_weight": 1.0,
"run_prevention_factor": 1.0577,
"strikeout_factor": 0.9703,
"walk_factor": 0.988,
"homer_factor": 1.1236,
"regression_flag": "neutral",
"k_percent": 17.7,
"bb_percent": 8.5,
"woba": 0.372,
"xwoba": 0.361,
"barrel_percent": 10.1,
"hard_hit_percent": 43.0,
"whiff_percent": 24.2
},
"espn_rank": {
"rank": 591,
"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": "663903",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 28.0,
"R": 28.0,
"H": 37.0,
"BB": 17.0,
"SO": 18.0,
"HR": 6.0,
"BF": 124.0,
"Pitches": 466.0
},
"per_game": {
"IP": 4.1,
"ER": 5.6,
"R": 5.6,
"H": 7.4,
"BB": 3.4,
"SO": 3.6,
"HR": 1.2,
"BF": 24.8,
"Pitches": 93.2
},
"rates": {
"ERA": 11.2836,
"WHIP": 2.4179,
"ER_per_IP": 1.25373,
"H_per_IP": 1.65672,
"BB_per_IP": 0.76119,
"SO_per_IP": 0.80597,
"HR_per_IP": 0.26866
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 45.0,
"R": 45.0,
"H": 70.0,
"BB": 28.0,
"SO": 37.0,
"HR": 10.0,
"BF": 253.0,
"Pitches": 966.0
},
"per_game": {
"IP": 5.0,
"ER": 4.5,
"R": 4.5,
"H": 7.0,
"BB": 2.8,
"SO": 3.7,
"HR": 1.0,
"BF": 25.3,
"Pitches": 96.6
},
"rates": {
"ERA": 7.9934,
"WHIP": 1.9342,
"ER_per_IP": 0.88816,
"H_per_IP": 1.38158,
"BB_per_IP": 0.55263,
"SO_per_IP": 0.73026,
"HR_per_IP": 0.19737
}
},
"season": {
"games": 30,
"totals": {
"IP": 154.0,
"ER": 97.0,
"R": 102.0,
"H": 181.0,
"BB": 60.0,
"SO": 125.0,
"HR": 31.0,
"BF": 707.0,
"Pitches": 2738.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2333,
"R": 3.4,
"H": 6.0333,
"BB": 2.0,
"SO": 4.1667,
"HR": 1.0333,
"BF": 23.5667,
"Pitches": 91.2667
},
"rates": {
"ERA": 5.6688,
"WHIP": 1.5649,
"ER_per_IP": 0.62987,
"H_per_IP": 1.17532,
"BB_per_IP": 0.38961,
"SO_per_IP": 0.81169,
"HR_per_IP": 0.2013
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 4.371,
"predicted_H": 6.551,
"predicted_BB": 2.723,
"predicted_SO": 3.77,
"predicted_HR": 1.026,
"predicted_ERA": 8.3784,
"predicted_WHIP": 1.9752
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 4.371,
"final": 4.6291,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 6.551,
"final": 6.7353,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.723,
"final": 2.0159,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.77,
"final": 5.0955,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.026,
"final": 1.0153,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 8.3784,
"final": 8.3784,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.9752,
"final": 1.9752,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 45,
"H": 70,
"BB": 28,
"SO": 37,
"HR": 10,
"ERA": 7.99342105263158,
"WHIP": 1.9342105263157896,
"K9": 6.572368421052632,
"HR9": 1.7763157894736843,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 1.4104928008202016,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663903",
"player_name": "Brady Singer",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 158,
"wins": 73,
"losses": 85,
"win_pct": 0.462,
"runs_scored": 648.0,
"runs_allowed": 808.0,
"run_differential": -160.0,
"run_differential_per_game": -1.0127,
"avg_runs_scored": 4.1013,
"avg_runs_allowed": 5.1139,
"offense_index": 0.9141,
"defense_index": 0.8773,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.2,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1914
},
"opponent": {
"team": "ATL",
"games": 158,
"wins": 93,
"losses": 65,
"win_pct": 0.5886,
"runs_scored": 725.0,
"runs_allowed": 608.0,
"run_differential": 117.0,
"run_differential_per_game": 0.7405,
"avg_runs_scored": 4.5886,
"avg_runs_allowed": 3.8481,
"offense_index": 1.0227,
"defense_index": 1.166,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2011
},
"edges": {
"quality_edge": -0.3925,
"offense_edge": -0.0859,
"opponent_offense_edge": 0.0227,
"defense_strength": -0.1227,
"opponent_defense_weakness": -0.166,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9797,
"run_prevention": 1.0355,
"strikeout": 0.9864
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663903",
"profile": {
"available": true,
"pitcher_id": "663903",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 670.0,
"k_percent": 17.7,
"bb_percent": 8.5,
"woba": 0.372,
"xwoba": 0.361,
"sweet_spot_percent": 37.1,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 43.0,
"avg_best_speed": 81.1017,
"avg_hyper_speed": 94.8519,
"whiff_percent": 24.2,
"swing_percent": 44.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.1121,
"command_and_miss": -0.2914,
"regression_edge": 0.3143,
"xwoba_edge": -1.4286,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.7286,
"whiff_edge": -0.1286,
"bb_edge": 0.15,
"pitch_design_score": -0.1408
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663903",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.3491612330451,
"release_spin_rate": 2382.3872675312164,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.3491612330451,
"release_spin_rate": 2382.3872675312164,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.3492,
"release_spin_rate": 2382.3873,
"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.1408,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0058,
"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.6784,
"sample_weight": 1.0,
"run_prevention_factor": 1.0577,
"strikeout_factor": 0.9703,
"walk_factor": 0.988,
"homer_factor": 1.1236,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663903",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0577,
"adjusted": 5
},
"predicted_H": {
"original": 7.0,
"factor": 1.0577,
"adjusted": 7
},
"predicted_BB": {
"original": 3.0,
"factor": 0.988,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1236,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9703,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 77,
"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/20260924_CIN@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"
}
} |
| 20260924 | 20260924_CIN@ATL | home | Tyler Mahle | Tyler Mahle | True | 6.0 | 5.0 | -3 | 4 | 5 | 1 | 6/6 | 4/2 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8125,
"WHIP": 1.2222222222222223,
"IP": 144.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.538,
"recent_avg_IP": 6.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0754,
"sample_weight": 1.0,
"run_prevention_factor": 0.9936,
"strikeout_factor": 0.9914,
"walk_factor": 0.966,
"homer_factor": 0.9751,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 7.4,
"woba": 0.306,
"xwoba": 0.304,
"barrel_percent": 6.3,
"hard_hit_percent": 37.4,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 90,
"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": "641816",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 4.0,
"R": 6.0,
"H": 24.0,
"BB": 4.0,
"SO": 25.0,
"HR": 2.0,
"BF": 119.0,
"Pitches": 472.0
},
"per_game": {
"IP": 6.0,
"ER": 0.8,
"R": 1.2,
"H": 4.8,
"BB": 0.8,
"SO": 5.0,
"HR": 0.4,
"BF": 23.8,
"Pitches": 94.4
},
"rates": {
"ERA": 1.1739,
"WHIP": 0.913,
"ER_per_IP": 0.13043,
"H_per_IP": 0.78261,
"BB_per_IP": 0.13043,
"SO_per_IP": 0.81522,
"HR_per_IP": 0.06522
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 12.0,
"R": 14.0,
"H": 45.0,
"BB": 11.0,
"SO": 56.0,
"HR": 5.0,
"BF": 233.0,
"Pitches": 920.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2,
"R": 1.4,
"H": 4.5,
"BB": 1.1,
"SO": 5.6,
"HR": 0.5,
"BF": 23.3,
"Pitches": 92.0
},
"rates": {
"ERA": 1.7705,
"WHIP": 0.918,
"ER_per_IP": 0.19672,
"H_per_IP": 0.7377,
"BB_per_IP": 0.18033,
"SO_per_IP": 0.91803,
"HR_per_IP": 0.08197
}
},
"season": {
"games": 26,
"totals": {
"IP": 144.0,
"ER": 61.0,
"R": 64.0,
"H": 132.0,
"BB": 44.0,
"SO": 133.0,
"HR": 18.0,
"BF": 592.0,
"Pitches": 2311.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3462,
"R": 2.4615,
"H": 5.0769,
"BB": 1.6923,
"SO": 5.1154,
"HR": 0.6923,
"BF": 22.7692,
"Pitches": 88.8846
},
"rates": {
"ERA": 3.8125,
"WHIP": 1.2222,
"ER_per_IP": 0.42361,
"H_per_IP": 0.91667,
"BB_per_IP": 0.30556,
"SO_per_IP": 0.92361,
"HR_per_IP": 0.125
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.548,
"predicted_H": 4.899,
"predicted_BB": 1.272,
"predicted_SO": 5.25,
"predicted_HR": 0.556,
"predicted_ERA": 2.3435,
"predicted_WHIP": 1.0382
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.548,
"final": 2.5733,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.899,
"final": 5.3594,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.272,
"final": 2.4127,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 5.25,
"final": 3.4729,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.556,
"final": 0.3235,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3435,
"final": 2.3435,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0382,
"final": 1.0382,
"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": 61.0,
"ER": 12,
"H": 45,
"BB": 11,
"SO": 56,
"HR": 5,
"ERA": 1.7704918032786885,
"WHIP": 0.9180327868852459,
"K9": 8.262295081967213,
"HR9": 0.7377049180327869,
"games_pitched": 10,
"quality_starts": 8,
"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-18T00:00:00"
},
"recent_form_boost": 0.6898441149275345,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 4.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"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": 4.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 158,
"wins": 93,
"losses": 65,
"win_pct": 0.5886,
"runs_scored": 725.0,
"runs_allowed": 608.0,
"run_differential": 117.0,
"run_differential_per_game": 0.7405,
"avg_runs_scored": 4.5886,
"avg_runs_allowed": 3.8481,
"offense_index": 1.0227,
"defense_index": 1.166,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2011
},
"opponent": {
"team": "CIN",
"games": 158,
"wins": 73,
"losses": 85,
"win_pct": 0.462,
"runs_scored": 648.0,
"runs_allowed": 808.0,
"run_differential": -160.0,
"run_differential_per_game": -1.0127,
"avg_runs_scored": 4.1013,
"avg_runs_allowed": 5.1139,
"offense_index": 0.9141,
"defense_index": 0.8773,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.2,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1914
},
"edges": {
"quality_edge": 0.3925,
"offense_edge": 0.0227,
"opponent_offense_edge": -0.0859,
"defense_strength": 0.166,
"opponent_defense_weakness": 0.1227,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0241,
"run_prevention": 0.95,
"strikeout": 1.0186
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 543.0,
"k_percent": 22.5,
"bb_percent": 7.4,
"woba": 0.306,
"xwoba": 0.304,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 37.4,
"avg_best_speed": 79.9962,
"avg_hyper_speed": 93.8414,
"whiff_percent": 23.1,
"swing_percent": 46.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1184,
"command_and_miss": 0.0171,
"regression_edge": 0.0571,
"xwoba_edge": 0.2,
"barrel_edge": 0.2,
"hard_hit_edge": 0.0714,
"whiff_edge": -0.2857,
"bb_edge": 0.425,
"pitch_design_score": -0.0125
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.64026118417685,
"release_spin_rate": 2134.9981031675284,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.64026118417685,
"release_spin_rate": 2134.9981031675284,
"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.6403,
"release_spin_rate": 2134.9981,
"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.0125,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0894,
"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.0754,
"sample_weight": 1.0,
"run_prevention_factor": 0.9936,
"strikeout_factor": 0.9914,
"walk_factor": 0.966,
"homer_factor": 0.9751,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641816",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9936,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9936,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.966,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9751,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9914,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 30,
"Pitches": 118,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260924_CIN@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"
}
} |
| 20260924 | 20260924_CLE@BOS | away | Daniel Espino | Daniel Espino | True | 3.0 | 1.0 | -6 | 2 | 0 | -2 | 6/0 | 1/0 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.725,
"WHIP": 1.425,
"IP": 13.1,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 1.5,
"recent_avg_IP": 1.5,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2623,
"sample_weight": 0.45,
"run_prevention_factor": 0.9777,
"strikeout_factor": 1.072,
"walk_factor": 1.0252,
"homer_factor": 1.038,
"regression_flag": "positive_pitcher_regression",
"k_percent": 37.3,
"bb_percent": 11.9,
"woba": 0.329,
"xwoba": 0.291,
"barrel_percent": 13.3,
"hard_hit_percent": 36.7,
"whiff_percent": 37.8
},
"espn_rank": {
"rank": 462,
"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": 2.72,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3524,
"prior_weight": 0.6476
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682982",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 4.0,
"R": 4.0,
"H": 6.0,
"BB": 3.0,
"SO": 7.0,
"HR": 2.0,
"BF": 25.0,
"Pitches": 97.0
},
"per_game": {
"IP": 1.0,
"ER": 0.8,
"R": 0.8,
"H": 1.2,
"BB": 0.6,
"SO": 1.4,
"HR": 0.4,
"BF": 5.0,
"Pitches": 19.4
},
"rates": {
"ERA": 6.75,
"WHIP": 1.6875,
"ER_per_IP": 0.75,
"H_per_IP": 1.125,
"BB_per_IP": 0.5625,
"SO_per_IP": 1.3125,
"HR_per_IP": 0.375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 11.1,
"ER": 5.0,
"R": 5.0,
"H": 9.0,
"BB": 7.0,
"SO": 18.0,
"HR": 2.0,
"BF": 50.0,
"Pitches": 211.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.9,
"BB": 0.7,
"SO": 1.8,
"HR": 0.2,
"BF": 5.0,
"Pitches": 21.1
},
"rates": {
"ERA": 3.9706,
"WHIP": 1.4118,
"ER_per_IP": 0.44118,
"H_per_IP": 0.79412,
"BB_per_IP": 0.61765,
"SO_per_IP": 1.58824,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 12,
"totals": {
"IP": 13.1,
"ER": 7.0,
"R": 7.0,
"H": 12.0,
"BB": 7.0,
"SO": 22.0,
"HR": 3.0,
"BF": 59.0,
"Pitches": 243.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5833,
"R": 0.5833,
"H": 1.0,
"BB": 0.5833,
"SO": 1.8333,
"HR": 0.25,
"BF": 4.9167,
"Pitches": 20.25
},
"rates": {
"ERA": 4.725,
"WHIP": 1.425,
"ER_per_IP": 0.525,
"H_per_IP": 0.9,
"BB_per_IP": 0.525,
"SO_per_IP": 1.65,
"HR_per_IP": 0.225
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.826,
"predicted_H": 3.294,
"predicted_BB": 1.504,
"predicted_SO": 3.804,
"predicted_HR": 0.652,
"predicted_ERA": 4.8692,
"predicted_WHIP": 1.4218
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6236,
"form_weight": 0.3764,
"form_reliability": 0.3524,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.72,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3524,
"prior_weight": 0.6476
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.826,
"final": 1.9345,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.294,
"final": 4.9815,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.504,
"final": 1.1897,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.804,
"final": 5.1734,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.652,
"final": 0.869,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8692,
"final": 4.8692,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4218,
"final": 1.4218,
"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": 11.1,
"ER": 5,
"H": 9,
"BB": 7,
"SO": 18,
"HR": 2,
"ERA": 3.9705882352941173,
"WHIP": 1.4117647058823528,
"K9": 14.294117647058822,
"HR9": 1.588235294117647,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.9792846928930355,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.72,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3524,
"prior_weight": 0.6476
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 2,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682982",
"player_name": "Daniel Espino",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 158,
"wins": 82,
"losses": 76,
"win_pct": 0.519,
"runs_scored": 652.0,
"runs_allowed": 650.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0127,
"avg_runs_scored": 4.1266,
"avg_runs_allowed": 4.1139,
"offense_index": 0.9197,
"defense_index": 1.0906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.4,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.0877
},
"opponent": {
"team": "BOS",
"games": 158,
"wins": 85,
"losses": 73,
"win_pct": 0.538,
"runs_scored": 681.0,
"runs_allowed": 601.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5063,
"avg_runs_scored": 4.3101,
"avg_runs_allowed": 3.8038,
"offense_index": 0.9606,
"defense_index": 1.1795,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 2.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0944
},
"edges": {
"quality_edge": -0.0067,
"offense_edge": -0.0803,
"opponent_offense_edge": -0.0394,
"defense_strength": 0.0906,
"opponent_defense_weakness": -0.1795,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.004,
"run_prevention": 0.985,
"strikeout": 1.003
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682982",
"profile": {
"available": true,
"pitcher_id": "682982",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 52.0,
"k_percent": 37.3,
"bb_percent": 11.9,
"woba": 0.329,
"xwoba": 0.291,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 13.3,
"hard_hit_percent": 36.7,
"avg_best_speed": 71.6705,
"avg_hyper_speed": 93.2488,
"whiff_percent": 37.8,
"swing_percent": 49.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1205,
"command_and_miss": 1.4786,
"regression_edge": 1.0857,
"xwoba_edge": 0.5714,
"barrel_edge": -1.3556,
"hard_hit_edge": 0.1714,
"whiff_edge": 1.8143,
"bb_edge": -0.7,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682982",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.96482029799016,
"release_spin_rate": 2413.0714912015155,
"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": 19,
"pitch_usage": 0.0,
"release_speed": 94.96482029799016,
"release_spin_rate": 2413.0714912015155,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.9648,
"release_spin_rate": 2413.0715,
"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.2623,
"sample_weight": 0.45,
"run_prevention_factor": 0.9777,
"strikeout_factor": 1.072,
"walk_factor": 1.0252,
"homer_factor": 1.038,
"woba_minus_xwoba": 0.038,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "682982",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.99,
"adjusted": 3
},
"predicted_H": {
"original": 3.0,
"factor": 0.99,
"adjusted": 3
},
"predicted_BB": {
"original": 5.0,
"factor": 1.0113,
"adjusted": 5
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0171,
"adjusted": 2
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0324,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 16,
"Pitches": 72,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
}
],
"provenance": {
"prediction": "output/games/20260924_CLE@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_CLE@BOS | home | Ranger Suarez | Ranger Suarez | True | 5.2 | 5.0 | -2 | 1 | 1 | 0 | 2/3 | 3/1 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.265116279069767,
"WHIP": 1.2,
"IP": 143.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.309,
"recent_avg_IP": 6.0,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1698,
"sample_weight": 1.0,
"run_prevention_factor": 0.9856,
"strikeout_factor": 0.9869,
"walk_factor": 0.97,
"homer_factor": 0.9317,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 7.6,
"woba": 0.288,
"xwoba": 0.298,
"barrel_percent": 5.4,
"hard_hit_percent": 33.5,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 59,
"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": "624133",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 9.0,
"R": 9.0,
"H": 26.0,
"BB": 12.0,
"SO": 22.0,
"HR": 2.0,
"BF": 126.0,
"Pitches": 479.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 5.2,
"BB": 2.4,
"SO": 4.4,
"HR": 0.4,
"BF": 25.2,
"Pitches": 95.8
},
"rates": {
"ERA": 2.7,
"WHIP": 1.2667,
"ER_per_IP": 0.3,
"H_per_IP": 0.86667,
"BB_per_IP": 0.4,
"SO_per_IP": 0.73333,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 20.0,
"R": 21.0,
"H": 47.0,
"BB": 19.0,
"SO": 38.0,
"HR": 4.0,
"BF": 217.0,
"Pitches": 852.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.1,
"H": 4.7,
"BB": 1.9,
"SO": 3.8,
"HR": 0.4,
"BF": 21.7,
"Pitches": 85.2
},
"rates": {
"ERA": 3.4615,
"WHIP": 1.2692,
"ER_per_IP": 0.38462,
"H_per_IP": 0.90385,
"BB_per_IP": 0.36538,
"SO_per_IP": 0.73077,
"HR_per_IP": 0.07692
}
},
"season": {
"games": 27,
"totals": {
"IP": 143.1,
"ER": 52.0,
"R": 55.0,
"H": 127.0,
"BB": 45.0,
"SO": 135.0,
"HR": 9.0,
"BF": 593.0,
"Pitches": 2298.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9259,
"R": 2.037,
"H": 4.7037,
"BB": 1.6667,
"SO": 5.0,
"HR": 0.3333,
"BF": 21.963,
"Pitches": 85.1111
},
"rates": {
"ERA": 3.2651,
"WHIP": 1.2,
"ER_per_IP": 0.36279,
"H_per_IP": 0.88605,
"BB_per_IP": 0.31395,
"SO_per_IP": 0.94186,
"HR_per_IP": 0.06279
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.078,
"predicted_H": 5.069,
"predicted_BB": 2.095,
"predicted_SO": 4.509,
"predicted_HR": 0.461,
"predicted_ERA": 3.3163,
"predicted_WHIP": 1.2705
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.078,
"final": 1.6296,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.069,
"final": 3.7923,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.095,
"final": 2.4715,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.509,
"final": 4.7133,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.461,
"final": 0.2692,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3163,
"final": 3.3163,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2705,
"final": 1.2705,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 20,
"H": 47,
"BB": 19,
"SO": 38,
"HR": 4,
"ERA": 3.461538461538462,
"WHIP": 1.2692307692307694,
"K9": 6.5769230769230775,
"HR9": 0.6923076923076924,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.8840315153951002,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "624133",
"player_name": "Ranger Suarez",
"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": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 158,
"wins": 85,
"losses": 73,
"win_pct": 0.538,
"runs_scored": 681.0,
"runs_allowed": 601.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5063,
"avg_runs_scored": 4.3101,
"avg_runs_allowed": 3.8038,
"offense_index": 0.9606,
"defense_index": 1.1795,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 2.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0944
},
"opponent": {
"team": "CLE",
"games": 158,
"wins": 82,
"losses": 76,
"win_pct": 0.519,
"runs_scored": 652.0,
"runs_allowed": 650.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0127,
"avg_runs_scored": 4.1266,
"avg_runs_allowed": 4.1139,
"offense_index": 0.9197,
"defense_index": 1.0906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.4,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.0877
},
"edges": {
"quality_edge": 0.0067,
"offense_edge": -0.0394,
"opponent_offense_edge": -0.0803,
"defense_strength": 0.1795,
"opponent_defense_weakness": -0.0906,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0089,
"run_prevention": 0.9689,
"strikeout": 1.0066
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "624133",
"profile": {
"available": true,
"pitcher_id": "624133",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 568.0,
"k_percent": 22.8,
"bb_percent": 7.6,
"woba": 0.288,
"xwoba": 0.298,
"sweet_spot_percent": 37.4,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 33.5,
"avg_best_speed": 75.2498,
"avg_hyper_speed": 93.2134,
"whiff_percent": 22.0,
"swing_percent": 45.1
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3987,
"command_and_miss": -0.0286,
"regression_edge": -0.2857,
"xwoba_edge": 0.3714,
"barrel_edge": 0.4,
"hard_hit_edge": 0.6286,
"whiff_edge": -0.4429,
"bb_edge": 0.375,
"pitch_design_score": -0.2191
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "624133",
"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.95170532532588,
"release_spin_rate": 1975.9066423776717,
"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.95170532532588,
"release_spin_rate": 1975.9066423776717,
"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.9517,
"release_spin_rate": 1975.9066,
"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.2191,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5648,
"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.1698,
"sample_weight": 1.0,
"run_prevention_factor": 0.9856,
"strikeout_factor": 0.9869,
"walk_factor": 0.97,
"homer_factor": 0.9317,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "624133",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9856,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9856,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9317,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9869,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260924_CLE@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_HOU@OAK | away | Peter Lambert | Peter Lambert | True | 5.2 | 2.2 | -9 | 1 | 4 | 3 | 4/6 | 1/2 | 9/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6953642384105962,
"WHIP": 1.2251655629139073,
"IP": 151.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.593,
"recent_avg_IP": 5.733,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1828,
"sample_weight": 1.0,
"run_prevention_factor": 0.9845,
"strikeout_factor": 1.0057,
"walk_factor": 0.996,
"homer_factor": 0.968,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 8.9,
"woba": 0.295,
"xwoba": 0.296,
"barrel_percent": 6.8,
"hard_hit_percent": 35.8,
"whiff_percent": 25.2
},
"espn_rank": {
"rank": 33,
"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": "663567",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 12.0,
"R": 13.0,
"H": 29.0,
"BB": 9.0,
"SO": 27.0,
"HR": 3.0,
"BF": 125.0,
"Pitches": 476.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.6,
"H": 5.8,
"BB": 1.8,
"SO": 5.4,
"HR": 0.6,
"BF": 25.0,
"Pitches": 95.2
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.3256,
"ER_per_IP": 0.4186,
"H_per_IP": 1.01163,
"BB_per_IP": 0.31395,
"SO_per_IP": 0.94186,
"HR_per_IP": 0.10465
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 29.0,
"R": 31.0,
"H": 56.0,
"BB": 19.0,
"SO": 53.0,
"HR": 4.0,
"BF": 236.0,
"Pitches": 921.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 3.1,
"H": 5.6,
"BB": 1.9,
"SO": 5.3,
"HR": 0.4,
"BF": 23.6,
"Pitches": 92.1
},
"rates": {
"ERA": 4.9245,
"WHIP": 1.4151,
"ER_per_IP": 0.54717,
"H_per_IP": 1.0566,
"BB_per_IP": 0.35849,
"SO_per_IP": 1.0,
"HR_per_IP": 0.07547
}
},
"season": {
"games": 27,
"totals": {
"IP": 151.0,
"ER": 62.0,
"R": 64.0,
"H": 128.0,
"BB": 57.0,
"SO": 147.0,
"HR": 15.0,
"BF": 641.0,
"Pitches": 2540.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2963,
"R": 2.3704,
"H": 4.7407,
"BB": 2.1111,
"SO": 5.4444,
"HR": 0.5556,
"BF": 23.7407,
"Pitches": 94.0741
},
"rates": {
"ERA": 3.6954,
"WHIP": 1.2252,
"ER_per_IP": 0.4106,
"H_per_IP": 0.84768,
"BB_per_IP": 0.37748,
"SO_per_IP": 0.97351,
"HR_per_IP": 0.09934
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.615,
"predicted_H": 5.528,
"predicted_BB": 1.935,
"predicted_SO": 5.366,
"predicted_HR": 0.568,
"predicted_ERA": 4.2263,
"predicted_WHIP": 1.3402
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.615,
"final": 1.9432,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.528,
"final": 4.8924,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.935,
"final": 1.546,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.366,
"final": 6.4617,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.568,
"final": 0.3317,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2263,
"final": 4.2263,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3402,
"final": 1.3402,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 29,
"H": 56,
"BB": 19,
"SO": 53,
"HR": 4,
"ERA": 4.9245283018867925,
"WHIP": 1.4150943396226414,
"K9": 9.0,
"HR9": 0.6792452830188679,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 1.0522644616940842,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"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": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"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": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"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": "HOU",
"games": 158,
"wins": 78,
"losses": 80,
"win_pct": 0.4937,
"runs_scored": 700.0,
"runs_allowed": 753.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3354,
"avg_runs_scored": 4.4304,
"avg_runs_allowed": 4.7658,
"offense_index": 0.9875,
"defense_index": 0.9414,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.8,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1165
},
"opponent": {
"team": "OAK",
"games": 158,
"wins": 63,
"losses": 95,
"win_pct": 0.3987,
"runs_scored": 686.0,
"runs_allowed": 903.0,
"run_differential": -217.0,
"run_differential_per_game": -1.3734,
"avg_runs_scored": 4.3418,
"avg_runs_allowed": 5.7152,
"offense_index": 0.9677,
"defense_index": 0.785,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 7.0,
"run_differential": -31.0
},
"available": true,
"quality_score": -0.3245
},
"edges": {
"quality_edge": 0.208,
"offense_edge": -0.0125,
"opponent_offense_edge": -0.0323,
"defense_strength": -0.0586,
"opponent_defense_weakness": 0.215,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0079,
"run_prevention": 0.9903,
"strikeout": 1.0088
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 613.0,
"k_percent": 22.9,
"bb_percent": 8.9,
"woba": 0.295,
"xwoba": 0.296,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 35.8,
"avg_best_speed": 77.5167,
"avg_hyper_speed": 93.5315,
"whiff_percent": 25.2,
"swing_percent": 48.9
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3015,
"command_and_miss": 0.0729,
"regression_edge": -0.0286,
"xwoba_edge": 0.4286,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.3,
"whiff_edge": 0.0143,
"bb_edge": 0.05,
"pitch_design_score": -0.0267
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.38687519162656,
"release_spin_rate": 2204.8030078841884,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.38687519162656,
"release_spin_rate": 2204.8030078841884,
"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.3869,
"release_spin_rate": 2204.803,
"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.0267,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1907,
"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.1828,
"sample_weight": 1.0,
"run_prevention_factor": 0.9845,
"strikeout_factor": 1.0057,
"walk_factor": 0.996,
"homer_factor": 0.968,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663567",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9845,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9845,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.996,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.968,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0057,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260924_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_HOU@OAK | home | Mason Barnett | Mason Barnett | True | 3.2 | 6.0 | 7 | 3 | 4 | 1 | 6/4 | 1/2 | 4/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 7.159090909090909,
"WHIP": 1.75,
"IP": 44.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 3.867,
"recent_avg_IP": 3.867,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3931,
"sample_weight": 0.736,
"run_prevention_factor": 1.0334,
"strikeout_factor": 0.9798,
"walk_factor": 1.0677,
"homer_factor": 1.0511,
"regression_flag": "positive_pitcher_regression",
"k_percent": 20.5,
"bb_percent": 13.7,
"woba": 0.396,
"xwoba": 0.352,
"barrel_percent": 9.0,
"hard_hit_percent": 38.3,
"whiff_percent": 21.8
},
"espn_rank": {
"rank": 516,
"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": 8.977,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6423,
"prior_weight": 0.3577
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686930",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.1,
"ER": 22.0,
"R": 23.0,
"H": 28.0,
"BB": 15.0,
"SO": 19.0,
"HR": 7.0,
"BF": 100.0,
"Pitches": 384.0
},
"per_game": {
"IP": 4.0,
"ER": 4.4,
"R": 4.6,
"H": 5.6,
"BB": 3.0,
"SO": 3.8,
"HR": 1.4,
"BF": 20.0,
"Pitches": 76.8
},
"rates": {
"ERA": 10.2414,
"WHIP": 2.2241,
"ER_per_IP": 1.13793,
"H_per_IP": 1.44828,
"BB_per_IP": 0.77586,
"SO_per_IP": 0.98276,
"HR_per_IP": 0.36207
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 28.2,
"ER": 33.0,
"R": 34.0,
"H": 41.0,
"BB": 21.0,
"SO": 23.0,
"HR": 11.0,
"BF": 146.0,
"Pitches": 565.0
},
"per_game": {
"IP": 3.0,
"ER": 3.3,
"R": 3.4,
"H": 4.1,
"BB": 2.1,
"SO": 2.3,
"HR": 1.1,
"BF": 14.6,
"Pitches": 56.5
},
"rates": {
"ERA": 10.3605,
"WHIP": 2.1628,
"ER_per_IP": 1.15116,
"H_per_IP": 1.43023,
"BB_per_IP": 0.73256,
"SO_per_IP": 0.80233,
"HR_per_IP": 0.38372
}
},
"season": {
"games": 19,
"totals": {
"IP": 44.0,
"ER": 35.0,
"R": 36.0,
"H": 49.0,
"BB": 28.0,
"SO": 42.0,
"HR": 12.0,
"BF": 205.0,
"Pitches": 822.0
},
"per_game": {
"IP": 2.1,
"ER": 1.8421,
"R": 1.8947,
"H": 2.5789,
"BB": 1.4737,
"SO": 2.2105,
"HR": 0.6316,
"BF": 10.7895,
"Pitches": 43.2632
},
"rates": {
"ERA": 7.1591,
"WHIP": 1.75,
"ER_per_IP": 0.79545,
"H_per_IP": 1.11364,
"BB_per_IP": 0.63636,
"SO_per_IP": 0.95455,
"HR_per_IP": 0.27273
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 3.211,
"predicted_H": 4.544,
"predicted_BB": 2.227,
"predicted_SO": 3.394,
"predicted_HR": 1.027,
"predicted_ERA": 7.8527,
"predicted_WHIP": 1.8397
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5011,
"form_weight": 0.4989,
"form_reliability": 0.6423,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.977,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6423,
"prior_weight": 0.3577
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.211,
"final": 3.6064,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.544,
"final": 5.2736,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.227,
"final": 1.6121,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.394,
"final": 3.6977,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.027,
"final": 1.0135,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.8527,
"final": 7.8527,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.8397,
"final": 1.8397,
"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": 28.2,
"ER": 33,
"H": 41,
"BB": 21,
"SO": 23,
"HR": 11,
"ERA": 10.360465116279071,
"WHIP": 2.162790697674419,
"K9": 7.22093023255814,
"HR9": 3.4534883720930236,
"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-18T00:00:00"
},
"recent_form_boost": 1.4324215085663652,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.977,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6423,
"prior_weight": 0.3577
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686930",
"player_name": "Mason Barnett",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 158,
"wins": 63,
"losses": 95,
"win_pct": 0.3987,
"runs_scored": 686.0,
"runs_allowed": 903.0,
"run_differential": -217.0,
"run_differential_per_game": -1.3734,
"avg_runs_scored": 4.3418,
"avg_runs_allowed": 5.7152,
"offense_index": 0.9677,
"defense_index": 0.785,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 7.0,
"run_differential": -31.0
},
"available": true,
"quality_score": -0.3245
},
"opponent": {
"team": "HOU",
"games": 158,
"wins": 78,
"losses": 80,
"win_pct": 0.4937,
"runs_scored": 700.0,
"runs_allowed": 753.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3354,
"avg_runs_scored": 4.4304,
"avg_runs_allowed": 4.7658,
"offense_index": 0.9875,
"defense_index": 0.9414,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.8,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1165
},
"edges": {
"quality_edge": -0.208,
"offense_edge": -0.0323,
"opponent_offense_edge": -0.0125,
"defense_strength": -0.215,
"opponent_defense_weakness": 0.0586,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9857,
"run_prevention": 1.0299,
"strikeout": 0.9948
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686930",
"profile": {
"available": true,
"pitcher_id": "686930",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 184.0,
"k_percent": 20.5,
"bb_percent": 13.7,
"woba": 0.396,
"xwoba": 0.352,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 38.3,
"avg_best_speed": 79.5635,
"avg_hyper_speed": 94.2875,
"whiff_percent": 21.8,
"swing_percent": 43.1
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.9453,
"command_and_miss": -0.4914,
"regression_edge": 1.2571,
"xwoba_edge": -1.1714,
"barrel_edge": -0.4,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.4714,
"bb_edge": -1.15,
"pitch_design_score": -0.033
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686930",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 89.27450273626764,
"release_spin_rate": 2374.2742610503064,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 89.27450273626764,
"release_spin_rate": 2374.2742610503064,
"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.2745,
"release_spin_rate": 2374.2743,
"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.033,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2357,
"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.3931,
"sample_weight": 0.736,
"run_prevention_factor": 1.0334,
"strikeout_factor": 0.9798,
"walk_factor": 1.0677,
"homer_factor": 1.0511,
"woba_minus_xwoba": 0.044,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "686930",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0246,
"adjusted": 5
},
"predicted_H": {
"original": 6.0,
"factor": 1.0246,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0498,
"adjusted": 3
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0376,
"adjusted": 2
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9851,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"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 +7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260924_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_LAA@SEA | away | Grayson Rodriguez | Grayson Rodriguez | True | 5.0 | 5.0 | 0 | 5 | 4 | -1 | 5/5 | 3/5 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.95729537366548,
"WHIP": 1.5373665480427046,
"IP": 93.2,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 4.93,
"recent_avg_IP": 5.533,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5731,
"sample_weight": 1.0,
"run_prevention_factor": 1.0487,
"strikeout_factor": 0.9789,
"walk_factor": 0.998,
"homer_factor": 1.1108,
"regression_flag": "neutral",
"k_percent": 19.7,
"bb_percent": 9.0,
"woba": 0.363,
"xwoba": 0.357,
"barrel_percent": 8.9,
"hard_hit_percent": 45.1,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 852,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680570",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 15.0,
"R": 15.0,
"H": 35.0,
"BB": 8.0,
"SO": 22.0,
"HR": 5.0,
"BF": 123.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 7.0,
"BB": 1.6,
"SO": 4.4,
"HR": 1.0,
"BF": 24.6,
"Pitches": 92.0
},
"rates": {
"ERA": 4.8795,
"WHIP": 1.5542,
"ER_per_IP": 0.54217,
"H_per_IP": 1.26506,
"BB_per_IP": 0.28916,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.18072
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 25.0,
"R": 28.0,
"H": 55.0,
"BB": 19.0,
"SO": 53.0,
"HR": 8.0,
"BF": 235.0,
"Pitches": 927.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.8,
"H": 5.5,
"BB": 1.9,
"SO": 5.3,
"HR": 0.8,
"BF": 23.5,
"Pitches": 92.7
},
"rates": {
"ERA": 4.1159,
"WHIP": 1.3537,
"ER_per_IP": 0.45732,
"H_per_IP": 1.0061,
"BB_per_IP": 0.34756,
"SO_per_IP": 0.96951,
"HR_per_IP": 0.14634
}
},
"season": {
"games": 19,
"totals": {
"IP": 93.2,
"ER": 62.0,
"R": 67.0,
"H": 106.0,
"BB": 38.0,
"SO": 83.0,
"HR": 15.0,
"BF": 421.0,
"Pitches": 1667.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2632,
"R": 3.5263,
"H": 5.5789,
"BB": 2.0,
"SO": 4.3684,
"HR": 0.7895,
"BF": 22.1579,
"Pitches": 87.7368
},
"rates": {
"ERA": 5.9573,
"WHIP": 1.5374,
"ER_per_IP": 0.66192,
"H_per_IP": 1.13167,
"BB_per_IP": 0.40569,
"SO_per_IP": 0.88612,
"HR_per_IP": 0.16014
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.867,
"predicted_H": 6.011,
"predicted_BB": 1.846,
"predicted_SO": 4.792,
"predicted_HR": 0.87,
"predicted_ERA": 4.7794,
"predicted_WHIP": 1.4552
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.867,
"final": 3.8013,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.011,
"final": 5.5682,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.846,
"final": 2.3515,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.792,
"final": 4.8831,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.87,
"final": 1.3649,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7794,
"final": 4.7794,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4552,
"final": 1.4552,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 25,
"H": 55,
"BB": 19,
"SO": 53,
"HR": 8,
"ERA": 4.115853658536585,
"WHIP": 1.3536585365853657,
"K9": 8.72560975609756,
"HR9": 1.3170731707317072,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.9597526692412539,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 5,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680570",
"player_name": "Grayson Rodriguez",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 158,
"wins": 60,
"losses": 98,
"win_pct": 0.3797,
"runs_scored": 635.0,
"runs_allowed": 728.0,
"run_differential": -93.0,
"run_differential_per_game": -0.5886,
"avg_runs_scored": 4.019,
"avg_runs_allowed": 4.6076,
"offense_index": 0.8958,
"defense_index": 0.9737,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.4,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.2094
},
"opponent": {
"team": "SEA",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 640.0,
"runs_allowed": 702.0,
"run_differential": -62.0,
"run_differential_per_game": -0.3924,
"avg_runs_scored": 4.0506,
"avg_runs_allowed": 4.443,
"offense_index": 0.9028,
"defense_index": 1.0098,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.1,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.075
},
"edges": {
"quality_edge": -0.1344,
"offense_edge": -0.1042,
"opponent_offense_edge": -0.0972,
"defense_strength": -0.0263,
"opponent_defense_weakness": -0.0098,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9977,
"run_prevention": 0.9938,
"strikeout": 1.0037
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680570",
"profile": {
"available": true,
"pitcher_id": "680570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 381.0,
"k_percent": 19.7,
"bb_percent": 9.0,
"woba": 0.363,
"xwoba": 0.357,
"sweet_spot_percent": 35.5,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 45.1,
"avg_best_speed": 79.5298,
"avg_hyper_speed": 94.8436,
"whiff_percent": 23.7,
"swing_percent": 49.1
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.9554,
"command_and_miss": -0.2129,
"regression_edge": 0.1714,
"xwoba_edge": -1.3143,
"barrel_edge": -0.3778,
"hard_hit_edge": -1.0286,
"whiff_edge": -0.2,
"bb_edge": 0.025,
"pitch_design_score": 0.0015
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680570",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.89029909471627,
"release_spin_rate": 2183.4815920333936,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.89029909471627,
"release_spin_rate": 2183.4815920333936,
"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.8903,
"release_spin_rate": 2183.4816,
"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.0015,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0106,
"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.5731,
"sample_weight": 1.0,
"run_prevention_factor": 1.0487,
"strikeout_factor": 0.9789,
"walk_factor": 0.998,
"homer_factor": 1.1108,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680570",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0487,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0487,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1108,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9789,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260924_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_LAA@SEA | home | Bryan Woo | Bryan Woo | True | 5.2 | 5.1 | -1 | 3 | 4 | 1 | 3/7 | 1/3 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9184890656063622,
"WHIP": 1.0795228628230618,
"IP": 167.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.782,
"recent_avg_IP": 5.867,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2083,
"sample_weight": 1.0,
"run_prevention_factor": 0.9823,
"strikeout_factor": 1.0126,
"walk_factor": 0.924,
"homer_factor": 1.009,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 5.3,
"woba": 0.281,
"xwoba": 0.293,
"barrel_percent": 7.0,
"hard_hit_percent": 42.8,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 79,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693433",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 10.0,
"R": 12.0,
"H": 24.0,
"BB": 7.0,
"SO": 30.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 443.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.4,
"H": 4.8,
"BB": 1.4,
"SO": 6.0,
"HR": 0.6,
"BF": 24.2,
"Pitches": 88.6
},
"rates": {
"ERA": 3.0682,
"WHIP": 1.0568,
"ER_per_IP": 0.34091,
"H_per_IP": 0.81818,
"BB_per_IP": 0.23864,
"SO_per_IP": 1.02273,
"HR_per_IP": 0.10227
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.1,
"ER": 22.0,
"R": 24.0,
"H": 47.0,
"BB": 14.0,
"SO": 58.0,
"HR": 6.0,
"BF": 234.0,
"Pitches": 887.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.4,
"H": 4.7,
"BB": 1.4,
"SO": 5.8,
"HR": 0.6,
"BF": 23.4,
"Pitches": 88.7
},
"rates": {
"ERA": 3.4535,
"WHIP": 1.064,
"ER_per_IP": 0.38372,
"H_per_IP": 0.81977,
"BB_per_IP": 0.24419,
"SO_per_IP": 1.01163,
"HR_per_IP": 0.10465
}
},
"season": {
"games": 29,
"totals": {
"IP": 167.2,
"ER": 73.0,
"R": 79.0,
"H": 145.0,
"BB": 36.0,
"SO": 167.0,
"HR": 18.0,
"BF": 684.0,
"Pitches": 2561.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5172,
"R": 2.7241,
"H": 5.0,
"BB": 1.2414,
"SO": 5.7586,
"HR": 0.6207,
"BF": 23.5862,
"Pitches": 88.3103
},
"rates": {
"ERA": 3.9185,
"WHIP": 1.0795,
"ER_per_IP": 0.43539,
"H_per_IP": 0.86481,
"BB_per_IP": 0.21471,
"SO_per_IP": 0.99602,
"HR_per_IP": 0.10736
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.288,
"predicted_H": 4.93,
"predicted_BB": 1.486,
"predicted_SO": 5.808,
"predicted_HR": 0.641,
"predicted_ERA": 3.5529,
"predicted_WHIP": 1.1072
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.288,
"final": 2.5815,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.93,
"final": 4.1346,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.486,
"final": 1.2857,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.808,
"final": 6.2993,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.641,
"final": 0.3768,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5529,
"final": 3.5529,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1072,
"final": 1.1072,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.1,
"ER": 22,
"H": 47,
"BB": 14,
"SO": 58,
"HR": 6,
"ERA": 3.4534883720930236,
"WHIP": 1.0639534883720931,
"K9": 9.104651162790699,
"HR9": 0.9418604651162792,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.8779939483110215,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693433",
"player_name": "Bryan Woo",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "SEA",
"games": 158,
"wins": 74,
"losses": 84,
"win_pct": 0.4684,
"runs_scored": 640.0,
"runs_allowed": 702.0,
"run_differential": -62.0,
"run_differential_per_game": -0.3924,
"avg_runs_scored": 4.0506,
"avg_runs_allowed": 4.443,
"offense_index": 0.9028,
"defense_index": 1.0098,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.1,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.075
},
"opponent": {
"team": "LAA",
"games": 158,
"wins": 60,
"losses": 98,
"win_pct": 0.3797,
"runs_scored": 635.0,
"runs_allowed": 728.0,
"run_differential": -93.0,
"run_differential_per_game": -0.5886,
"avg_runs_scored": 4.019,
"avg_runs_allowed": 4.6076,
"offense_index": 0.8958,
"defense_index": 0.9737,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.4,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.2094
},
"edges": {
"quality_edge": 0.1344,
"offense_edge": -0.0972,
"opponent_offense_edge": -0.1042,
"defense_strength": 0.0098,
"opponent_defense_weakness": 0.0263,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0098,
"run_prevention": 0.9756,
"strikeout": 1.0124
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693433",
"profile": {
"available": true,
"pitcher_id": "693433",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 655.0,
"k_percent": 24.4,
"bb_percent": 5.3,
"woba": 0.281,
"xwoba": 0.293,
"sweet_spot_percent": 35.9,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 42.8,
"avg_best_speed": 78.6007,
"avg_hyper_speed": 94.3637,
"whiff_percent": 24.9,
"swing_percent": 53.3
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2544,
"command_and_miss": 0.3343,
"regression_edge": -0.3429,
"xwoba_edge": 0.5143,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.7,
"whiff_edge": -0.0286,
"bb_edge": 0.95,
"pitch_design_score": 0.1652
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693433",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 92.81366532931159,
"release_spin_rate": 2265.4298134012292,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 92.81366532931159,
"release_spin_rate": 2265.4298134012292,
"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.8137,
"release_spin_rate": 2265.4298,
"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.1652,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.18,
"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.2083,
"sample_weight": 1.0,
"run_prevention_factor": 0.9823,
"strikeout_factor": 1.0126,
"walk_factor": 0.924,
"homer_factor": 1.009,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "693433",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9823,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9823,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.009,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0126,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260924_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_MIA@CHC | away | Tyler Phillips | Tyler Phillips | True | 5.0 | 4.0 | -3 | 1 | 0 | -1 | 4/3 | 5/4 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.448369565217391,
"WHIP": 1.3125,
"IP": 122.2,
"games_started": null,
"games_pitched": 36,
"role_avg_IP": 4.526,
"recent_avg_IP": 4.4,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2769,
"sample_weight": 1.0,
"run_prevention_factor": 1.0235,
"strikeout_factor": 0.9886,
"walk_factor": 1.018,
"homer_factor": 1.055,
"regression_flag": "neutral",
"k_percent": 19.0,
"bb_percent": 10.0,
"woba": 0.314,
"xwoba": 0.33,
"barrel_percent": 7.9,
"hard_hit_percent": 42.5,
"whiff_percent": 26.1
},
"espn_rank": {
"rank": 88,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 122.2,
"season_ERA": 3.448,
"season_WHIP": 1.312,
"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": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663969",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 36,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 6.0,
"R": 6.0,
"H": 13.0,
"BB": 10.0,
"SO": 20.0,
"HR": 4.0,
"BF": 86.0,
"Pitches": 347.0
},
"per_game": {
"IP": 4.1,
"ER": 1.2,
"R": 1.2,
"H": 2.6,
"BB": 2.0,
"SO": 4.0,
"HR": 0.8,
"BF": 17.2,
"Pitches": 69.4
},
"rates": {
"ERA": 2.4545,
"WHIP": 1.0455,
"ER_per_IP": 0.27273,
"H_per_IP": 0.59091,
"BB_per_IP": 0.45455,
"SO_per_IP": 0.90909,
"HR_per_IP": 0.18182
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.1,
"ER": 16.0,
"R": 16.0,
"H": 35.0,
"BB": 16.0,
"SO": 41.0,
"HR": 8.0,
"BF": 178.0,
"Pitches": 683.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 1.6,
"H": 3.5,
"BB": 1.6,
"SO": 4.1,
"HR": 0.8,
"BF": 17.8,
"Pitches": 68.3
},
"rates": {
"ERA": 3.3231,
"WHIP": 1.1769,
"ER_per_IP": 0.36923,
"H_per_IP": 0.80769,
"BB_per_IP": 0.36923,
"SO_per_IP": 0.94615,
"HR_per_IP": 0.18462
}
},
"season": {
"games": 36,
"totals": {
"IP": 122.2,
"ER": 47.0,
"R": 50.0,
"H": 109.0,
"BB": 52.0,
"SO": 99.0,
"HR": 17.0,
"BF": 520.0,
"Pitches": 1964.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3056,
"R": 1.3889,
"H": 3.0278,
"BB": 1.4444,
"SO": 2.75,
"HR": 0.4722,
"BF": 14.4444,
"Pitches": 54.5556
},
"rates": {
"ERA": 3.4484,
"WHIP": 1.3125,
"ER_per_IP": 0.38315,
"H_per_IP": 0.88859,
"BB_per_IP": 0.42391,
"SO_per_IP": 0.80707,
"HR_per_IP": 0.13859
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.487,
"predicted_H": 3.211,
"predicted_BB": 1.752,
"predicted_SO": 3.841,
"predicted_HR": 0.725,
"predicted_ERA": 3.1572,
"predicted_WHIP": 1.1709
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4015,
"form_weight": 0.5985,
"form_reliability": 0.878,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.487,
"final": 1.2914,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.211,
"final": 3.5278,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.752,
"final": 3.0562,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.841,
"final": 3.5033,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.725,
"final": 0.4339,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1572,
"final": 3.1572,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1709,
"final": 1.1709,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.1,
"ER": 16,
"H": 35,
"BB": 16,
"SO": 41,
"HR": 8,
"ERA": 3.3230769230769233,
"WHIP": 1.176923076923077,
"K9": 8.515384615384617,
"HR9": 1.6615384615384616,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.8661469000104848,
"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": 4.0,
"predicted_BB": 5.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663969",
"player_name": "Tyler Phillips",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 158,
"wins": 78,
"losses": 80,
"win_pct": 0.4937,
"runs_scored": 703.0,
"runs_allowed": 699.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0253,
"avg_runs_scored": 4.4494,
"avg_runs_allowed": 4.4241,
"offense_index": 0.9917,
"defense_index": 1.0141,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.6,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0327
},
"opponent": {
"team": "CHC",
"games": 158,
"wins": 87,
"losses": 71,
"win_pct": 0.5506,
"runs_scored": 839.0,
"runs_allowed": 694.0,
"run_differential": 145.0,
"run_differential_per_game": 0.9177,
"avg_runs_scored": 5.3101,
"avg_runs_allowed": 4.3924,
"offense_index": 1.1836,
"defense_index": 1.0214,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.1555
},
"edges": {
"quality_edge": -0.1228,
"offense_edge": -0.0083,
"opponent_offense_edge": 0.1836,
"defense_strength": 0.0141,
"opponent_defense_weakness": -0.0214,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9882,
"run_prevention": 1.0341,
"strikeout": 0.9816
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663969",
"profile": {
"available": true,
"pitcher_id": "663969",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 19.0,
"bb_percent": 10.0,
"woba": 0.314,
"xwoba": 0.33,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 42.5,
"avg_best_speed": 79.1111,
"avg_hyper_speed": 94.3069,
"whiff_percent": 26.1,
"swing_percent": 45.8
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3166,
"command_and_miss": -0.1879,
"regression_edge": -0.4571,
"xwoba_edge": -0.5429,
"barrel_edge": -0.1556,
"hard_hit_edge": -0.6571,
"whiff_edge": 0.1429,
"bb_edge": -0.225,
"pitch_design_score": -0.0629
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663969",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 67,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 88.74043596565609,
"release_spin_rate": 2055.6265692430447,
"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": 67,
"pitch_usage": 0.0,
"release_speed": 88.74043596565609,
"release_spin_rate": 2055.6265692430447,
"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.7404,
"release_spin_rate": 2055.6266,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0629,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4493,
"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.2769,
"sample_weight": 1.0,
"run_prevention_factor": 1.0235,
"strikeout_factor": 0.9886,
"walk_factor": 1.018,
"homer_factor": 1.055,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663969",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0235,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0235,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.018,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.055,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9886,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 5,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260924_MIA@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_MIA@CHC | home | Matthew Boyd | Matthew Boyd | True | 5.2 | 7.0 | 4 | 3 | 1 | -2 | 4/5 | 1/2 | 1/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.061281337047354,
"WHIP": 1.2200557103064067,
"IP": 119.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.698,
"recent_avg_IP": 5.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2782,
"sample_weight": 1.0,
"run_prevention_factor": 1.0236,
"strikeout_factor": 0.968,
"walk_factor": 0.968,
"homer_factor": 1.0357,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 7.5,
"woba": 0.307,
"xwoba": 0.332,
"barrel_percent": 8.1,
"hard_hit_percent": 38.2,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 224,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "571510",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 12.0,
"R": 13.0,
"H": 24.0,
"BB": 9.0,
"SO": 22.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 450.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.6,
"H": 4.8,
"BB": 1.8,
"SO": 4.4,
"HR": 0.2,
"BF": 22.4,
"Pitches": 90.0
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.1512,
"ER_per_IP": 0.4186,
"H_per_IP": 0.83721,
"BB_per_IP": 0.31395,
"SO_per_IP": 0.76744,
"HR_per_IP": 0.03488
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.2,
"ER": 29.0,
"R": 32.0,
"H": 53.0,
"BB": 20.0,
"SO": 38.0,
"HR": 9.0,
"BF": 247.0,
"Pitches": 912.0
},
"per_game": {
"IP": 6.0,
"ER": 2.9,
"R": 3.2,
"H": 5.3,
"BB": 2.0,
"SO": 3.8,
"HR": 0.9,
"BF": 24.7,
"Pitches": 91.2
},
"rates": {
"ERA": 4.3022,
"WHIP": 1.2033,
"ER_per_IP": 0.47802,
"H_per_IP": 0.87363,
"BB_per_IP": 0.32967,
"SO_per_IP": 0.62637,
"HR_per_IP": 0.14835
}
},
"season": {
"games": 21,
"totals": {
"IP": 119.2,
"ER": 54.0,
"R": 58.0,
"H": 109.0,
"BB": 37.0,
"SO": 93.0,
"HR": 15.0,
"BF": 493.0,
"Pitches": 1867.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5714,
"R": 2.7619,
"H": 5.1905,
"BB": 1.7619,
"SO": 4.4286,
"HR": 0.7143,
"BF": 23.4762,
"Pitches": 88.9048
},
"rates": {
"ERA": 4.0613,
"WHIP": 1.2201,
"ER_per_IP": 0.45125,
"H_per_IP": 0.91086,
"BB_per_IP": 0.30919,
"SO_per_IP": 0.77716,
"HR_per_IP": 0.12535
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.641,
"predicted_H": 5.112,
"predicted_BB": 1.898,
"predicted_SO": 4.389,
"predicted_HR": 0.595,
"predicted_ERA": 4.1253,
"predicted_WHIP": 1.2169
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.641,
"final": 2.7958,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.112,
"final": 4.6325,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.898,
"final": 1.5107,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 4.389,
"final": 2.9275,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.595,
"final": 0.3384,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1253,
"final": 4.1253,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2169,
"final": 1.2169,
"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": 29,
"H": 53,
"BB": 20,
"SO": 38,
"HR": 9,
"ERA": 4.302197802197802,
"WHIP": 1.2032967032967032,
"K9": 5.637362637362638,
"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-19T00:00:00"
},
"recent_form_boost": 0.9769573395709243,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"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": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 158,
"wins": 87,
"losses": 71,
"win_pct": 0.5506,
"runs_scored": 839.0,
"runs_allowed": 694.0,
"run_differential": 145.0,
"run_differential_per_game": 0.9177,
"avg_runs_scored": 5.3101,
"avg_runs_allowed": 4.3924,
"offense_index": 1.1836,
"defense_index": 1.0214,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.1555
},
"opponent": {
"team": "MIA",
"games": 158,
"wins": 78,
"losses": 80,
"win_pct": 0.4937,
"runs_scored": 703.0,
"runs_allowed": 699.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0253,
"avg_runs_scored": 4.4494,
"avg_runs_allowed": 4.4241,
"offense_index": 0.9917,
"defense_index": 1.0141,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.6,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0327
},
"edges": {
"quality_edge": 0.1228,
"offense_edge": 0.1836,
"opponent_offense_edge": -0.0083,
"defense_strength": 0.0214,
"opponent_defense_weakness": -0.0141,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0059,
"run_prevention": 0.9904,
"strikeout": 1.0043
},
"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.9,
"bb_percent": 7.5,
"woba": 0.307,
"xwoba": 0.332,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.2,
"avg_best_speed": 76.9008,
"avg_hyper_speed": 94.0093,
"whiff_percent": 22.6,
"swing_percent": 48.8
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2172,
"command_and_miss": -0.2443,
"regression_edge": -0.7143,
"xwoba_edge": -0.6,
"barrel_edge": -0.2,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.3571,
"bb_edge": 0.4,
"pitch_design_score": -0.2701
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "571510",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 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": 93,
"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.2701,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9295,
"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.2782,
"sample_weight": 1.0,
"run_prevention_factor": 1.0236,
"strikeout_factor": 0.968,
"walk_factor": 0.968,
"homer_factor": 1.0357,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "571510",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0236,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0236,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0357,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.968,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 1,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260924_MIA@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_MIL@PHI | away | Shane Drohan | Shane Drohan | True | 4.2 | 2.2 | -6 | 1 | 1 | 0 | 3/3 | 2/2 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.2631578947368425,
"WHIP": 1.3296398891966759,
"IP": 120.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.074,
"recent_avg_IP": 4.6,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1241,
"sample_weight": 1.0,
"run_prevention_factor": 0.9895,
"strikeout_factor": 1.024,
"walk_factor": 0.982,
"homer_factor": 1.023,
"regression_flag": "neutral",
"k_percent": 23.7,
"bb_percent": 8.2,
"woba": 0.325,
"xwoba": 0.302,
"barrel_percent": 8.8,
"hard_hit_percent": 38.3,
"whiff_percent": 27.6
},
"espn_rank": {
"rank": 318,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "675660",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 15.0,
"ER": 12.0,
"R": 12.0,
"H": 18.0,
"BB": 6.0,
"SO": 17.0,
"HR": 5.0,
"BF": 66.0,
"Pitches": 271.0
},
"per_game": {
"IP": 3.0,
"ER": 2.4,
"R": 2.4,
"H": 3.6,
"BB": 1.2,
"SO": 3.4,
"HR": 1.0,
"BF": 13.2,
"Pitches": 54.2
},
"rates": {
"ERA": 7.2,
"WHIP": 1.6,
"ER_per_IP": 0.8,
"H_per_IP": 1.2,
"BB_per_IP": 0.4,
"SO_per_IP": 1.13333,
"HR_per_IP": 0.33333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 38.1,
"ER": 25.0,
"R": 25.0,
"H": 43.0,
"BB": 19.0,
"SO": 39.0,
"HR": 8.0,
"BF": 168.0,
"Pitches": 658.0
},
"per_game": {
"IP": 4.0,
"ER": 2.5,
"R": 2.5,
"H": 4.3,
"BB": 1.9,
"SO": 3.9,
"HR": 0.8,
"BF": 16.8,
"Pitches": 65.8
},
"rates": {
"ERA": 5.8696,
"WHIP": 1.6174,
"ER_per_IP": 0.65217,
"H_per_IP": 1.12174,
"BB_per_IP": 0.49565,
"SO_per_IP": 1.01739,
"HR_per_IP": 0.2087
}
},
"season": {
"games": 31,
"totals": {
"IP": 120.1,
"ER": 57.0,
"R": 62.0,
"H": 118.0,
"BB": 42.0,
"SO": 121.0,
"HR": 14.0,
"BF": 510.0,
"Pitches": 1933.0
},
"per_game": {
"IP": 4.0,
"ER": 1.8387,
"R": 2.0,
"H": 3.8065,
"BB": 1.3548,
"SO": 3.9032,
"HR": 0.4516,
"BF": 16.4516,
"Pitches": 62.3548
},
"rates": {
"ERA": 4.2632,
"WHIP": 1.3296,
"ER_per_IP": 0.47368,
"H_per_IP": 0.98061,
"BB_per_IP": 0.34903,
"SO_per_IP": 1.00554,
"HR_per_IP": 0.11634
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 2.442,
"predicted_H": 4.107,
"predicted_BB": 1.544,
"predicted_SO": 3.887,
"predicted_HR": 0.862,
"predicted_ERA": 5.9315,
"predicted_WHIP": 1.5251
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.442,
"final": 1.8527,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.107,
"final": 3.6546,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.544,
"final": 1.7304,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.887,
"final": 3.5245,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.862,
"final": 0.5097,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9315,
"final": 5.9315,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5251,
"final": 1.5251,
"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": 38.1,
"ER": 25,
"H": 43,
"BB": 19,
"SO": 39,
"HR": 8,
"ERA": 5.869565217391305,
"WHIP": 1.6173913043478263,
"K9": 9.156521739130437,
"HR9": 1.8782608695652177,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 1.1636385388064716,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "675660",
"player_name": "Shane Drohan",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 158,
"wins": 99,
"losses": 59,
"win_pct": 0.6266,
"runs_scored": 810.0,
"runs_allowed": 607.0,
"run_differential": 203.0,
"run_differential_per_game": 1.2848,
"avg_runs_scored": 5.1266,
"avg_runs_allowed": 3.8418,
"offense_index": 1.143,
"defense_index": 1.1675,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.7,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.3352
},
"opponent": {
"team": "PHI",
"games": 158,
"wins": 87,
"losses": 71,
"win_pct": 0.5506,
"runs_scored": 704.0,
"runs_allowed": 676.0,
"run_differential": 28.0,
"run_differential_per_game": 0.1772,
"avg_runs_scored": 4.4557,
"avg_runs_allowed": 4.2785,
"offense_index": 0.9934,
"defense_index": 1.0483,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.8,
"run_differential": -8.0
},
"available": true,
"quality_score": 0.0647
},
"edges": {
"quality_edge": 0.2705,
"offense_edge": 0.143,
"opponent_offense_edge": -0.0066,
"defense_strength": 0.1675,
"opponent_defense_weakness": -0.0483,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0161,
"run_prevention": 0.9687,
"strikeout": 1.0086
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "675660",
"profile": {
"available": true,
"pitcher_id": "675660",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 500.0,
"k_percent": 23.7,
"bb_percent": 8.2,
"woba": 0.325,
"xwoba": 0.302,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 38.3,
"avg_best_speed": 77.5588,
"avg_hyper_speed": 93.9255,
"whiff_percent": 27.6,
"swing_percent": 48.2
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0301,
"command_and_miss": 0.2793,
"regression_edge": 0.6571,
"xwoba_edge": 0.2571,
"barrel_edge": -0.3556,
"hard_hit_edge": -0.0571,
"whiff_edge": 0.3571,
"bb_edge": 0.225,
"pitch_design_score": 0.0323
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675660",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 66,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 90.44122148478533,
"release_spin_rate": 2572.257864118206,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 90.44122148478533,
"release_spin_rate": 2572.257864118206,
"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.4412,
"release_spin_rate": 2572.2579,
"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.0323,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.231,
"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.1241,
"sample_weight": 1.0,
"run_prevention_factor": 0.9895,
"strikeout_factor": 1.024,
"walk_factor": 0.982,
"homer_factor": 1.023,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "675660",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9895,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9895,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.982,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.023,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.024,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"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/20260924_MIL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_MIL@PHI | home | Andrew Painter | Andrew Painter | True | 5.0 | 6.0 | 3 | 5 | 1 | -4 | 7/5 | 2/3 | 3/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.593922651933702,
"WHIP": 1.4171270718232043,
"IP": 120.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.03,
"recent_avg_IP": 5.667,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0821,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9909,
"walk_factor": 0.984,
"homer_factor": 1.0178,
"regression_flag": "neutral",
"k_percent": 20.3,
"bb_percent": 8.3,
"woba": 0.341,
"xwoba": 0.325,
"barrel_percent": 8.3,
"hard_hit_percent": 35.5,
"whiff_percent": 25.2
},
"espn_rank": {
"rank": 212,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "691725",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 10.0,
"SO": 28.0,
"HR": 4.0,
"BF": 118.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 4.8,
"BB": 2.0,
"SO": 5.6,
"HR": 0.8,
"BF": 23.6,
"Pitches": 91.4
},
"rates": {
"ERA": 4.1294,
"WHIP": 1.2,
"ER_per_IP": 0.45882,
"H_per_IP": 0.84706,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.98824,
"HR_per_IP": 0.14118
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 24.0,
"R": 24.0,
"H": 43.0,
"BB": 20.0,
"SO": 54.0,
"HR": 7.0,
"BF": 229.0,
"Pitches": 892.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 4.3,
"BB": 2.0,
"SO": 5.4,
"HR": 0.7,
"BF": 22.9,
"Pitches": 89.2
},
"rates": {
"ERA": 3.8802,
"WHIP": 1.1317,
"ER_per_IP": 0.43114,
"H_per_IP": 0.77246,
"BB_per_IP": 0.35928,
"SO_per_IP": 0.97006,
"HR_per_IP": 0.12575
}
},
"season": {
"games": 24,
"totals": {
"IP": 120.2,
"ER": 75.0,
"R": 75.0,
"H": 127.0,
"BB": 44.0,
"SO": 107.0,
"HR": 21.0,
"BF": 528.0,
"Pitches": 2033.0
},
"per_game": {
"IP": 5.0,
"ER": 3.125,
"R": 3.125,
"H": 5.2917,
"BB": 1.8333,
"SO": 4.4583,
"HR": 0.875,
"BF": 22.0,
"Pitches": 84.7083
},
"rates": {
"ERA": 5.5939,
"WHIP": 1.4171,
"ER_per_IP": 0.62155,
"H_per_IP": 1.05249,
"BB_per_IP": 0.36464,
"SO_per_IP": 0.88674,
"HR_per_IP": 0.17403
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.676,
"predicted_H": 4.854,
"predicted_BB": 1.983,
"predicted_SO": 5.264,
"predicted_HR": 0.788,
"predicted_ERA": 4.38,
"predicted_WHIP": 1.2435
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.676,
"final": 3.6587,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.854,
"final": 5.7614,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.983,
"final": 1.9902,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.264,
"final": 4.3067,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.788,
"final": 0.4548,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.38,
"final": 4.38,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2435,
"final": 1.2435,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 24,
"H": 43,
"BB": 20,
"SO": 54,
"HR": 7,
"ERA": 3.8802395209580838,
"WHIP": 1.131736526946108,
"K9": 8.73053892215569,
"HR9": 1.131736526946108,
"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-19T00:00:00"
},
"recent_form_boost": 0.9276980285226911,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691725",
"player_name": "Andrew Painter",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 158,
"wins": 87,
"losses": 71,
"win_pct": 0.5506,
"runs_scored": 704.0,
"runs_allowed": 676.0,
"run_differential": 28.0,
"run_differential_per_game": 0.1772,
"avg_runs_scored": 4.4557,
"avg_runs_allowed": 4.2785,
"offense_index": 0.9934,
"defense_index": 1.0483,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.8,
"run_differential": -8.0
},
"available": true,
"quality_score": 0.0647
},
"opponent": {
"team": "MIL",
"games": 158,
"wins": 99,
"losses": 59,
"win_pct": 0.6266,
"runs_scored": 810.0,
"runs_allowed": 607.0,
"run_differential": 203.0,
"run_differential_per_game": 1.2848,
"avg_runs_scored": 5.1266,
"avg_runs_allowed": 3.8418,
"offense_index": 1.143,
"defense_index": 1.1675,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.7,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.3352
},
"edges": {
"quality_edge": -0.2705,
"offense_edge": -0.0066,
"opponent_offense_edge": 0.143,
"defense_strength": 0.0483,
"opponent_defense_weakness": -0.1675,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9849,
"run_prevention": 1.0316,
"strikeout": 0.9804
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691725",
"profile": {
"available": true,
"pitcher_id": "691725",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 503.0,
"k_percent": 20.3,
"bb_percent": 8.3,
"woba": 0.341,
"xwoba": 0.325,
"sweet_spot_percent": 29.6,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 35.5,
"avg_best_speed": 76.1311,
"avg_hyper_speed": 93.668,
"whiff_percent": 25.2,
"swing_percent": 49.4
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.202,
"command_and_miss": -0.0643,
"regression_edge": 0.4571,
"xwoba_edge": -0.4,
"barrel_edge": -0.2444,
"hard_hit_edge": 0.3429,
"whiff_edge": 0.0143,
"bb_edge": 0.2,
"pitch_design_score": 0.0245
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691725",
"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": 90.30079839615475,
"release_spin_rate": 2307.356647519465,
"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": 90.30079839615475,
"release_spin_rate": 2307.356647519465,
"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.3008,
"release_spin_rate": 2307.3566,
"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.0245,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1748,
"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.0821,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9909,
"walk_factor": 0.984,
"homer_factor": 1.0178,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "691725",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.007,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.007,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.984,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0178,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9909,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "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/20260924_MIL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_NYM@TEX | away | Zac Thornton | Zac Thornton | True | 5.2 | 5.0 | -2 | 2 | 2 | 0 | 5/4 | 0/1 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4033613445378155,
"WHIP": 1.147058823529412,
"IP": 79.1,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3499,
"sample_weight": 1.0,
"run_prevention_factor": 1.0297,
"strikeout_factor": 0.9429,
"walk_factor": 0.924,
"homer_factor": 1.0781,
"regression_flag": "neutral",
"k_percent": 18.6,
"bb_percent": 5.3,
"woba": 0.313,
"xwoba": 0.329,
"barrel_percent": 9.6,
"hard_hit_percent": 41.4,
"whiff_percent": 18.5
},
"espn_rank": {
"rank": 115,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "804267",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 13.0,
"R": 13.0,
"H": 30.0,
"BB": 3.0,
"SO": 23.0,
"HR": 7.0,
"BF": 118.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 6.0,
"BB": 0.6,
"SO": 4.6,
"HR": 1.4,
"BF": 23.6,
"Pitches": 87.2
},
"rates": {
"ERA": 4.0345,
"WHIP": 1.1379,
"ER_per_IP": 0.44828,
"H_per_IP": 1.03448,
"BB_per_IP": 0.10345,
"SO_per_IP": 0.7931,
"HR_per_IP": 0.24138
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 25.0,
"R": 26.0,
"H": 60.0,
"BB": 11.0,
"SO": 42.0,
"HR": 12.0,
"BF": 231.0,
"Pitches": 853.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.6,
"H": 6.0,
"BB": 1.1,
"SO": 4.2,
"HR": 1.2,
"BF": 23.1,
"Pitches": 85.3
},
"rates": {
"ERA": 4.0179,
"WHIP": 1.2679,
"ER_per_IP": 0.44643,
"H_per_IP": 1.07143,
"BB_per_IP": 0.19643,
"SO_per_IP": 0.75,
"HR_per_IP": 0.21429
}
},
"season": {
"games": 14,
"totals": {
"IP": 79.1,
"ER": 30.0,
"R": 31.0,
"H": 74.0,
"BB": 17.0,
"SO": 59.0,
"HR": 13.0,
"BF": 318.0,
"Pitches": 1174.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1429,
"R": 2.2143,
"H": 5.2857,
"BB": 1.2143,
"SO": 4.2143,
"HR": 0.9286,
"BF": 22.7143,
"Pitches": 83.8571
},
"rates": {
"ERA": 3.4034,
"WHIP": 1.1471,
"ER_per_IP": 0.37815,
"H_per_IP": 0.93277,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.7437,
"HR_per_IP": 0.16387
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.572,
"predicted_H": 5.754,
"predicted_BB": 1.221,
"predicted_SO": 4.605,
"predicted_HR": 1.125,
"predicted_ERA": 4.0849,
"predicted_WHIP": 1.2308
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7368,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.572,
"final": 2.3082,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.754,
"final": 5.4063,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.221,
"final": 0.6579,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.605,
"final": 3.4036,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.125,
"final": 0.6061,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0849,
"final": 4.0849,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2308,
"final": 1.2308,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 25,
"H": 60,
"BB": 11,
"SO": 42,
"HR": 12,
"ERA": 4.017857142857143,
"WHIP": 1.2678571428571428,
"K9": 6.75,
"HR9": 1.9285714285714286,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.9465830263841112,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804267",
"player_name": "Zac Thornton",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 158,
"wins": 73,
"losses": 85,
"win_pct": 0.462,
"runs_scored": 681.0,
"runs_allowed": 714.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2089,
"avg_runs_scored": 4.3101,
"avg_runs_allowed": 4.519,
"offense_index": 0.9607,
"defense_index": 0.9928,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0929
},
"opponent": {
"team": "TEX",
"games": 158,
"wins": 78,
"losses": 80,
"win_pct": 0.4937,
"runs_scored": 658.0,
"runs_allowed": 700.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2658,
"avg_runs_scored": 4.1646,
"avg_runs_allowed": 4.4304,
"offense_index": 0.9282,
"defense_index": 1.0127,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0029
},
"edges": {
"quality_edge": -0.09,
"offense_edge": -0.0393,
"opponent_offense_edge": -0.0718,
"defense_strength": -0.0072,
"opponent_defense_weakness": -0.0127,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9991,
"run_prevention": 0.9937,
"strikeout": 1.003
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "804267",
"profile": {
"available": true,
"pitcher_id": "804267",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 273.0,
"k_percent": 18.6,
"bb_percent": 5.3,
"woba": 0.313,
"xwoba": 0.329,
"sweet_spot_percent": 36.4,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 41.4,
"avg_best_speed": 77.7421,
"avg_hyper_speed": 94.353,
"whiff_percent": 18.5,
"swing_percent": 52.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3581,
"command_and_miss": -0.3586,
"regression_edge": -0.4571,
"xwoba_edge": -0.5143,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.5,
"whiff_edge": -0.9429,
"bb_edge": 0.95,
"pitch_design_score": -0.1301
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804267",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.54106140532146,
"release_spin_rate": 2356.5118793991364,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.54106140532146,
"release_spin_rate": 2356.5118793991364,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.5411,
"release_spin_rate": 2356.5119,
"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.1301,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.929,
"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.3499,
"sample_weight": 1.0,
"run_prevention_factor": 1.0297,
"strikeout_factor": 0.9429,
"walk_factor": 0.924,
"homer_factor": 1.0781,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "804267",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0297,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0297,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0781,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9429,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260924_NYM@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_NYM@TEX | home | Kumar Rocker | Kumar Rocker | True | 4.2 | 5.0 | 1 | 4 | 1 | -3 | 3/3 | 5/2 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.468531468531468,
"WHIP": 1.4195804195804196,
"IP": 143.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.821,
"recent_avg_IP": 4.4,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1658,
"sample_weight": 1.0,
"run_prevention_factor": 1.0141,
"strikeout_factor": 1.0011,
"walk_factor": 1.006,
"homer_factor": 1.0366,
"regression_flag": "neutral",
"k_percent": 21.4,
"bb_percent": 9.4,
"woba": 0.333,
"xwoba": 0.328,
"barrel_percent": 7.7,
"hard_hit_percent": 40.2,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 207,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677958",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 11.0,
"R": 12.0,
"H": 23.0,
"BB": 11.0,
"SO": 25.0,
"HR": 3.0,
"BF": 99.0,
"Pitches": 393.0
},
"per_game": {
"IP": 4.1,
"ER": 2.2,
"R": 2.4,
"H": 4.6,
"BB": 2.2,
"SO": 5.0,
"HR": 0.6,
"BF": 19.8,
"Pitches": 78.6
},
"rates": {
"ERA": 4.5,
"WHIP": 1.5455,
"ER_per_IP": 0.5,
"H_per_IP": 1.04545,
"BB_per_IP": 0.5,
"SO_per_IP": 1.13636,
"HR_per_IP": 0.13636
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.0,
"ER": 27.0,
"R": 28.0,
"H": 54.0,
"BB": 23.0,
"SO": 48.0,
"HR": 8.0,
"BF": 216.0,
"Pitches": 824.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 2.8,
"H": 5.4,
"BB": 2.3,
"SO": 4.8,
"HR": 0.8,
"BF": 21.6,
"Pitches": 82.4
},
"rates": {
"ERA": 5.1702,
"WHIP": 1.6383,
"ER_per_IP": 0.57447,
"H_per_IP": 1.14894,
"BB_per_IP": 0.48936,
"SO_per_IP": 1.02128,
"HR_per_IP": 0.17021
}
},
"season": {
"games": 29,
"totals": {
"IP": 143.0,
"ER": 71.0,
"R": 73.0,
"H": 144.0,
"BB": 59.0,
"SO": 134.0,
"HR": 20.0,
"BF": 627.0,
"Pitches": 2422.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4483,
"R": 2.5172,
"H": 4.9655,
"BB": 2.0345,
"SO": 4.6207,
"HR": 0.6897,
"BF": 21.6207,
"Pitches": 83.5172
},
"rates": {
"ERA": 4.4685,
"WHIP": 1.4196,
"ER_per_IP": 0.4965,
"H_per_IP": 1.00699,
"BB_per_IP": 0.41259,
"SO_per_IP": 0.93706,
"HR_per_IP": 0.13986
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.404,
"predicted_H": 4.874,
"predicted_BB": 2.131,
"predicted_SO": 4.774,
"predicted_HR": 0.684,
"predicted_ERA": 4.7087,
"predicted_WHIP": 1.5242
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.404,
"final": 3.0618,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.874,
"final": 4.1016,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 2.131,
"final": 3.3135,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.774,
"final": 4.455,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.684,
"final": 0.8142,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7087,
"final": 4.7087,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5242,
"final": 1.5242,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.0,
"ER": 27,
"H": 54,
"BB": 23,
"SO": 48,
"HR": 8,
"ERA": 5.170212765957447,
"WHIP": 1.6382978723404256,
"K9": 9.191489361702128,
"HR9": 1.5319148936170213,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 1.0854840522199773,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677958",
"player_name": "Kumar Rocker",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 158,
"wins": 78,
"losses": 80,
"win_pct": 0.4937,
"runs_scored": 658.0,
"runs_allowed": 700.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2658,
"avg_runs_scored": 4.1646,
"avg_runs_allowed": 4.4304,
"offense_index": 0.9282,
"defense_index": 1.0127,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0029
},
"opponent": {
"team": "NYM",
"games": 158,
"wins": 73,
"losses": 85,
"win_pct": 0.462,
"runs_scored": 681.0,
"runs_allowed": 714.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2089,
"avg_runs_scored": 4.3101,
"avg_runs_allowed": 4.519,
"offense_index": 0.9607,
"defense_index": 0.9928,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0929
},
"edges": {
"quality_edge": 0.09,
"offense_edge": -0.0718,
"opponent_offense_edge": -0.0393,
"defense_strength": 0.0127,
"opponent_defense_weakness": 0.0072,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0056,
"run_prevention": 0.9879,
"strikeout": 1.0058
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677958",
"profile": {
"available": true,
"pitcher_id": "677958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 608.0,
"k_percent": 21.4,
"bb_percent": 9.4,
"woba": 0.333,
"xwoba": 0.328,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 40.2,
"avg_best_speed": 78.0305,
"avg_hyper_speed": 94.4045,
"whiff_percent": 25.9,
"swing_percent": 47.9
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3103,
"command_and_miss": -0.0136,
"regression_edge": 0.1429,
"xwoba_edge": -0.4857,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.3286,
"whiff_edge": 0.1143,
"bb_edge": -0.075,
"pitch_design_score": -0.0348
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.2417427175566,
"release_spin_rate": 2139.55819234905,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.2417427175566,
"release_spin_rate": 2139.55819234905,
"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.2417,
"release_spin_rate": 2139.5582,
"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.0348,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2488,
"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.1658,
"sample_weight": 1.0,
"run_prevention_factor": 1.0141,
"strikeout_factor": 1.0011,
"walk_factor": 1.006,
"homer_factor": 1.0366,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "677958",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0141,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0141,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0366,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0011,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 5,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260924_NYM@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_SD@LAD | away | Nick Pivetta | Nick Pivetta | True | 5.0 | 4.2 | -1 | 2 | 0 | -2 | 5/4 | 3/1 | 6/7 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 3.3,
"WHIP": 1.0,
"IP": 30.0,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 4.286,
"recent_avg_IP": 4.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.209,
"sample_weight": 0.45,
"run_prevention_factor": 0.9822,
"strikeout_factor": 1.0067,
"walk_factor": 0.9703,
"homer_factor": 0.9915,
"regression_flag": "neutral",
"k_percent": 29.2,
"bb_percent": 5.8,
"woba": 0.246,
"xwoba": 0.265,
"barrel_percent": 9.0,
"hard_hit_percent": 35.9,
"whiff_percent": 20.5
},
"espn_rank": {
"rank": 232,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 30.0,
"season_ERA": 3.3,
"season_WHIP": 1.0,
"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.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "601713",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 5.0,
"R": 5.0,
"H": 15.0,
"BB": 2.0,
"SO": 23.0,
"HR": 2.0,
"BF": 83.0,
"Pitches": 340.0
},
"per_game": {
"IP": 4.1,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 0.4,
"SO": 4.6,
"HR": 0.4,
"BF": 16.6,
"Pitches": 68.0
},
"rates": {
"ERA": 2.0455,
"WHIP": 0.7727,
"ER_per_IP": 0.22727,
"H_per_IP": 0.68182,
"BB_per_IP": 0.09091,
"SO_per_IP": 1.04545,
"HR_per_IP": 0.09091
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 30.0,
"ER": 11.0,
"R": 11.0,
"H": 23.0,
"BB": 7.0,
"SO": 35.0,
"HR": 2.0,
"BF": 120.0,
"Pitches": 491.0
},
"per_game": {
"IP": 4.1,
"ER": 1.5714,
"R": 1.5714,
"H": 3.2857,
"BB": 1.0,
"SO": 5.0,
"HR": 0.2857,
"BF": 17.1429,
"Pitches": 70.1429
},
"rates": {
"ERA": 3.3,
"WHIP": 1.0,
"ER_per_IP": 0.36667,
"H_per_IP": 0.76667,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.16667,
"HR_per_IP": 0.06667
}
},
"season": {
"games": 7,
"totals": {
"IP": 30.0,
"ER": 11.0,
"R": 11.0,
"H": 23.0,
"BB": 7.0,
"SO": 35.0,
"HR": 2.0,
"BF": 120.0,
"Pitches": 491.0
},
"per_game": {
"IP": 4.1,
"ER": 1.5714,
"R": 1.5714,
"H": 3.2857,
"BB": 1.0,
"SO": 5.0,
"HR": 0.2857,
"BF": 17.1429,
"Pitches": 70.1429
},
"rates": {
"ERA": 3.3,
"WHIP": 1.0,
"ER_per_IP": 0.36667,
"H_per_IP": 0.76667,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.16667,
"HR_per_IP": 0.06667
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.681,
"predicted_H": 3.776,
"predicted_BB": 1.058,
"predicted_SO": 4.69,
"predicted_HR": 0.514,
"predicted_ERA": 3.2817,
"predicted_WHIP": 1.0482
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.681,
"final": 1.8488,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.776,
"final": 4.4199,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.058,
"final": 2.0796,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.69,
"final": 4.327,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.514,
"final": 0.7697,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2817,
"final": 3.2817,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0482,
"final": 1.0482,
"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": 30.0,
"ER": 11,
"H": 23,
"BB": 7,
"SO": 35,
"HR": 2,
"ERA": 3.3,
"WHIP": 1.0,
"K9": 10.5,
"HR9": 0.6,
"games_pitched": 7,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.8599002863600387,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "601713",
"player_name": "Nick Pivetta",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 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": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 158,
"wins": 88,
"losses": 70,
"win_pct": 0.557,
"runs_scored": 695.0,
"runs_allowed": 657.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2405,
"avg_runs_scored": 4.3987,
"avg_runs_allowed": 4.1582,
"offense_index": 0.9804,
"defense_index": 1.0789,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 4.4,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1829
},
"opponent": {
"team": "LAD",
"games": 158,
"wins": 97,
"losses": 61,
"win_pct": 0.6139,
"runs_scored": 788.0,
"runs_allowed": 592.0,
"run_differential": 196.0,
"run_differential_per_game": 1.2405,
"avg_runs_scored": 4.9873,
"avg_runs_allowed": 3.7468,
"offense_index": 1.1116,
"defense_index": 1.1974,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 2.7,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.3189
},
"edges": {
"quality_edge": -0.136,
"offense_edge": -0.0196,
"opponent_offense_edge": 0.1116,
"defense_strength": 0.0789,
"opponent_defense_weakness": -0.1974,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9925,
"run_prevention": 1.0168,
"strikeout": 0.987
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "601713",
"profile": {
"available": true,
"pitcher_id": "601713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 100.0,
"k_percent": 29.2,
"bb_percent": 5.8,
"woba": 0.246,
"xwoba": 0.265,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 35.9,
"avg_best_speed": 79.7105,
"avg_hyper_speed": 93.5986,
"whiff_percent": 20.5,
"swing_percent": 47.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7466,
"command_and_miss": 0.3979,
"regression_edge": -0.5429,
"xwoba_edge": 1.3143,
"barrel_edge": -0.4,
"hard_hit_edge": 0.2857,
"whiff_edge": -0.6571,
"bb_edge": 0.825,
"pitch_design_score": -0.0365
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "601713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 69,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 89.21211734682227,
"release_spin_rate": 2437.193161283574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 89.21211734682227,
"release_spin_rate": 2437.193161283574,
"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.2121,
"release_spin_rate": 2437.1932,
"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.0365,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2606,
"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.209,
"sample_weight": 0.45,
"run_prevention_factor": 0.9822,
"strikeout_factor": 1.0067,
"walk_factor": 0.9703,
"homer_factor": 0.9915,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "601713",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.992,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.992,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9866,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9962,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.003,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260924_SD@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_SD@LAD | home | Tyler Glasnow | Tyler Glasnow | True | 6.0 | 6.1 | 1 | 2 | 3 | 1 | 5/3 | 2/2 | 7/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4581280788177335,
"WHIP": 0.960591133004926,
"IP": 67.2,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 5.639,
"recent_avg_IP": 5.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5745,
"sample_weight": 0.96,
"run_prevention_factor": 0.9512,
"strikeout_factor": 1.0938,
"walk_factor": 0.9923,
"homer_factor": 0.9923,
"regression_flag": "neutral",
"k_percent": 33.0,
"bb_percent": 8.7,
"woba": 0.251,
"xwoba": 0.266,
"barrel_percent": 8.5,
"hard_hit_percent": 39.2,
"whiff_percent": 31.2
},
"espn_rank": {
"rank": 119,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 67.2,
"season_ERA": 3.458,
"season_WHIP": 0.961,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607192",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 14.0,
"R": 14.0,
"H": 22.0,
"BB": 10.0,
"SO": 38.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 459.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 4.4,
"BB": 2.0,
"SO": 7.6,
"HR": 0.4,
"BF": 23.2,
"Pitches": 91.8
},
"rates": {
"ERA": 4.5,
"WHIP": 1.1429,
"ER_per_IP": 0.5,
"H_per_IP": 0.78571,
"BB_per_IP": 0.35714,
"SO_per_IP": 1.35714,
"HR_per_IP": 0.07143
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 22.0,
"R": 22.0,
"H": 34.0,
"BB": 20.0,
"SO": 72.0,
"HR": 7.0,
"BF": 217.0,
"Pitches": 867.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 3.4,
"BB": 2.0,
"SO": 7.2,
"HR": 0.7,
"BF": 21.7,
"Pitches": 86.7
},
"rates": {
"ERA": 3.5569,
"WHIP": 0.9701,
"ER_per_IP": 0.39521,
"H_per_IP": 0.61078,
"BB_per_IP": 0.35928,
"SO_per_IP": 1.29341,
"HR_per_IP": 0.12575
}
},
"season": {
"games": 12,
"totals": {
"IP": 67.2,
"ER": 26.0,
"R": 26.0,
"H": 42.0,
"BB": 23.0,
"SO": 87.0,
"HR": 7.0,
"BF": 264.0,
"Pitches": 1058.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1667,
"R": 2.1667,
"H": 3.5,
"BB": 1.9167,
"SO": 7.25,
"HR": 0.5833,
"BF": 22.0,
"Pitches": 88.1667
},
"rates": {
"ERA": 3.4581,
"WHIP": 0.9606,
"ER_per_IP": 0.38424,
"H_per_IP": 0.62069,
"BB_per_IP": 0.3399,
"SO_per_IP": 1.28571,
"HR_per_IP": 0.10345
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.657,
"predicted_H": 4.48,
"predicted_BB": 2.08,
"predicted_SO": 6.963,
"predicted_HR": 0.645,
"predicted_ERA": 4.148,
"predicted_WHIP": 1.1378
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4743,
"form_weight": 0.5257,
"form_reliability": 0.7059,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.657,
"final": 2.3454,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.48,
"final": 4.7266,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.08,
"final": 2.0421,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.963,
"final": 5.5578,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.645,
"final": 0.3391,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.148,
"final": 4.148,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1378,
"final": 1.1378,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 22,
"H": 34,
"BB": 20,
"SO": 72,
"HR": 7,
"ERA": 3.55688622754491,
"WHIP": 0.9700598802395208,
"K9": 11.64071856287425,
"HR9": 1.1317365269461077,
"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-18T00:00:00"
},
"recent_form_boost": 0.8872788668460444,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607192",
"player_name": "Tyler Glasnow",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 158,
"wins": 97,
"losses": 61,
"win_pct": 0.6139,
"runs_scored": 788.0,
"runs_allowed": 592.0,
"run_differential": 196.0,
"run_differential_per_game": 1.2405,
"avg_runs_scored": 4.9873,
"avg_runs_allowed": 3.7468,
"offense_index": 1.1116,
"defense_index": 1.1974,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 2.7,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.3189
},
"opponent": {
"team": "SD",
"games": 158,
"wins": 88,
"losses": 70,
"win_pct": 0.557,
"runs_scored": 695.0,
"runs_allowed": 657.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2405,
"avg_runs_scored": 4.3987,
"avg_runs_allowed": 4.1582,
"offense_index": 0.9804,
"defense_index": 1.0789,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 4.4,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1829
},
"edges": {
"quality_edge": 0.136,
"offense_edge": 0.1116,
"opponent_offense_edge": -0.0196,
"defense_strength": 0.1974,
"opponent_defense_weakness": -0.0789,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0121,
"run_prevention": 0.9703,
"strikeout": 1.0056
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607192",
"profile": {
"available": true,
"pitcher_id": "607192",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 240.0,
"k_percent": 33.0,
"bb_percent": 8.7,
"woba": 0.251,
"xwoba": 0.266,
"sweet_spot_percent": 32.7,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 39.2,
"avg_best_speed": 81.2861,
"avg_hyper_speed": 93.9525,
"whiff_percent": 31.2,
"swing_percent": 42.4
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.658,
"command_and_miss": 1.0321,
"regression_edge": -0.4286,
"xwoba_edge": 1.2857,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.1857,
"whiff_edge": 0.8714,
"bb_edge": 0.1,
"pitch_design_score": 0.0557
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607192",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 76,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 90.85773330934553,
"release_spin_rate": 2625.986737733158,
"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": 76,
"pitch_usage": 0.0,
"release_speed": 90.85773330934553,
"release_spin_rate": 2625.986737733158,
"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.8577,
"release_spin_rate": 2625.9867,
"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.0557,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3976,
"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.5745,
"sample_weight": 0.96,
"run_prevention_factor": 0.9512,
"strikeout_factor": 1.0938,
"walk_factor": 0.9923,
"homer_factor": 0.9923,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607192",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9532,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9532,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9926,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9926,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.09,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260924_SD@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_STL@PIT | away | Kyle Leahy | Kyle Leahy | True | 5.0 | 2.0 | -9 | 2 | 1 | -1 | 2/3 | 4/0 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.652173913043478,
"WHIP": 1.3405797101449275,
"IP": 138.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.759,
"recent_avg_IP": 3.133,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4005,
"sample_weight": 1.0,
"run_prevention_factor": 1.034,
"strikeout_factor": 0.9846,
"walk_factor": 0.958,
"homer_factor": 1.1187,
"regression_flag": "neutral",
"k_percent": 22.0,
"bb_percent": 7.0,
"woba": 0.327,
"xwoba": 0.337,
"barrel_percent": 9.7,
"hard_hit_percent": 47.0,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 82,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 138.0,
"season_ERA": 3.652,
"season_WHIP": 1.341,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681517",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 15.2,
"ER": 12.0,
"R": 13.0,
"H": 19.0,
"BB": 6.0,
"SO": 18.0,
"HR": 3.0,
"BF": 71.0,
"Pitches": 268.0
},
"per_game": {
"IP": 3.0,
"ER": 2.4,
"R": 2.6,
"H": 3.8,
"BB": 1.2,
"SO": 3.6,
"HR": 0.6,
"BF": 14.2,
"Pitches": 53.6
},
"rates": {
"ERA": 6.8936,
"WHIP": 1.5957,
"ER_per_IP": 0.76596,
"H_per_IP": 1.21277,
"BB_per_IP": 0.38298,
"SO_per_IP": 1.14894,
"HR_per_IP": 0.19149
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.2,
"ER": 18.0,
"R": 19.0,
"H": 48.0,
"BB": 8.0,
"SO": 50.0,
"HR": 5.0,
"BF": 179.0,
"Pitches": 721.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 1.9,
"H": 4.8,
"BB": 0.8,
"SO": 5.0,
"HR": 0.5,
"BF": 17.9,
"Pitches": 72.1
},
"rates": {
"ERA": 3.7969,
"WHIP": 1.3125,
"ER_per_IP": 0.42188,
"H_per_IP": 1.125,
"BB_per_IP": 0.1875,
"SO_per_IP": 1.17188,
"HR_per_IP": 0.11719
}
},
"season": {
"games": 29,
"totals": {
"IP": 138.0,
"ER": 56.0,
"R": 57.0,
"H": 144.0,
"BB": 41.0,
"SO": 129.0,
"HR": 15.0,
"BF": 587.0,
"Pitches": 2291.0
},
"per_game": {
"IP": 4.2,
"ER": 1.931,
"R": 1.9655,
"H": 4.9655,
"BB": 1.4138,
"SO": 4.4483,
"HR": 0.5172,
"BF": 20.2414,
"Pitches": 79.0
},
"rates": {
"ERA": 3.6522,
"WHIP": 1.3406,
"ER_per_IP": 0.4058,
"H_per_IP": 1.04348,
"BB_per_IP": 0.2971,
"SO_per_IP": 0.93478,
"HR_per_IP": 0.1087
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.244,
"predicted_H": 4.469,
"predicted_BB": 1.228,
"predicted_SO": 4.327,
"predicted_HR": 0.592,
"predicted_ERA": 5.0782,
"predicted_WHIP": 1.4327
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.244,
"final": 2.1434,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.469,
"final": 3.4514,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.228,
"final": 2.3705,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.327,
"final": 4.6044,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.592,
"final": 0.348,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0782,
"final": 5.0782,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4327,
"final": 1.4327,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.2,
"ER": 18,
"H": 48,
"BB": 8,
"SO": 50,
"HR": 5,
"ERA": 3.796875,
"WHIP": 1.3125,
"K9": 10.546875,
"HR9": 1.0546875,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.922838606741254,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681517",
"player_name": "Kyle Leahy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 158,
"wins": 77,
"losses": 81,
"win_pct": 0.4873,
"runs_scored": 709.0,
"runs_allowed": 730.0,
"run_differential": -21.0,
"run_differential_per_game": -0.1329,
"avg_runs_scored": 4.4873,
"avg_runs_allowed": 4.6203,
"offense_index": 0.9991,
"defense_index": 0.9721,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0621
},
"opponent": {
"team": "PIT",
"games": 158,
"wins": 80,
"losses": 78,
"win_pct": 0.5063,
"runs_scored": 751.0,
"runs_allowed": 724.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1709,
"avg_runs_scored": 4.7532,
"avg_runs_allowed": 4.5823,
"offense_index": 1.0583,
"defense_index": 0.9802,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0613
},
"edges": {
"quality_edge": -0.1234,
"offense_edge": -0.0009,
"opponent_offense_edge": 0.0583,
"defense_strength": -0.0279,
"opponent_defense_weakness": 0.0198,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9919,
"run_prevention": 1.0183,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681517",
"profile": {
"available": true,
"pitcher_id": "681517",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 568.0,
"k_percent": 22.0,
"bb_percent": 7.0,
"woba": 0.327,
"xwoba": 0.337,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 47.0,
"avg_best_speed": 80.6216,
"avg_hyper_speed": 95.3099,
"whiff_percent": 22.4,
"swing_percent": 46.3
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6478,
"command_and_miss": -0.03,
"regression_edge": -0.2857,
"xwoba_edge": -0.7429,
"barrel_edge": -0.5556,
"hard_hit_edge": -1.3,
"whiff_edge": -0.3857,
"bb_edge": 0.525,
"pitch_design_score": -0.0172
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681517",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 59,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 59,
"pitch_usage": 0.0,
"release_speed": 89.55713480456048,
"release_spin_rate": 2180.111420248253,
"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": 59,
"pitch_usage": 0.0,
"release_speed": 89.55713480456048,
"release_spin_rate": 2180.111420248253,
"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.5571,
"release_spin_rate": 2180.1114,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0172,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1226,
"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.4005,
"sample_weight": 1.0,
"run_prevention_factor": 1.034,
"strikeout_factor": 0.9846,
"walk_factor": 0.958,
"homer_factor": 1.1187,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "681517",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.034,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.034,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.958,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1187,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9846,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260924_STL@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_STL@PIT | home | Paul Skenes | Paul Skenes | True | 5.2 | 6.1 | 2 | 4 | 1 | -3 | 7/3 | 1/2 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9107142857142856,
"WHIP": 1.130952380952381,
"IP": 168.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.419,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4767,
"sample_weight": 1.0,
"run_prevention_factor": 0.9595,
"strikeout_factor": 1.0509,
"walk_factor": 0.954,
"homer_factor": 0.9717,
"regression_flag": "neutral",
"k_percent": 27.9,
"bb_percent": 6.8,
"woba": 0.298,
"xwoba": 0.28,
"barrel_percent": 7.1,
"hard_hit_percent": 37.9,
"whiff_percent": 28.1
},
"espn_rank": {
"rank": 42,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694973",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 12.0,
"R": 12.0,
"H": 25.0,
"BB": 6.0,
"SO": 21.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 440.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 5.0,
"BB": 1.2,
"SO": 4.2,
"HR": 1.0,
"BF": 23.2,
"Pitches": 88.0
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.069,
"ER_per_IP": 0.41379,
"H_per_IP": 0.86207,
"BB_per_IP": 0.2069,
"SO_per_IP": 0.72414,
"HR_per_IP": 0.17241
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 29.0,
"R": 30.0,
"H": 49.0,
"BB": 21.0,
"SO": 54.0,
"HR": 8.0,
"BF": 224.0,
"Pitches": 884.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 3.0,
"H": 4.9,
"BB": 2.1,
"SO": 5.4,
"HR": 0.8,
"BF": 22.4,
"Pitches": 88.4
},
"rates": {
"ERA": 4.9557,
"WHIP": 1.3291,
"ER_per_IP": 0.55063,
"H_per_IP": 0.93038,
"BB_per_IP": 0.39873,
"SO_per_IP": 1.02532,
"HR_per_IP": 0.1519
}
},
"season": {
"games": 31,
"totals": {
"IP": 168.0,
"ER": 73.0,
"R": 81.0,
"H": 143.0,
"BB": 47.0,
"SO": 192.0,
"HR": 19.0,
"BF": 689.0,
"Pitches": 2794.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3548,
"R": 2.6129,
"H": 4.6129,
"BB": 1.5161,
"SO": 6.1935,
"HR": 0.6129,
"BF": 22.2258,
"Pitches": 90.129
},
"rates": {
"ERA": 3.9107,
"WHIP": 1.131,
"ER_per_IP": 0.43452,
"H_per_IP": 0.85119,
"BB_per_IP": 0.27976,
"SO_per_IP": 1.14286,
"HR_per_IP": 0.1131
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.6,
"predicted_H": 4.944,
"predicted_BB": 1.657,
"predicted_SO": 5.049,
"predicted_HR": 0.841,
"predicted_ERA": 4.2485,
"predicted_WHIP": 1.1983
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.6,
"final": 3.1722,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.944,
"final": 5.7843,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.657,
"final": 1.3885,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.049,
"final": 5.8463,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.841,
"final": 0.4973,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2485,
"final": 4.2485,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1983,
"final": 1.1983,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.2,
"ER": 29,
"H": 49,
"BB": 21,
"SO": 54,
"HR": 8,
"ERA": 4.955696202531646,
"WHIP": 1.3291139240506329,
"K9": 9.227848101265824,
"HR9": 1.3670886075949367,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 1.05362134012733,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694973",
"player_name": "Paul Skenes",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "PIT",
"games": 158,
"wins": 80,
"losses": 78,
"win_pct": 0.5063,
"runs_scored": 751.0,
"runs_allowed": 724.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1709,
"avg_runs_scored": 4.7532,
"avg_runs_allowed": 4.5823,
"offense_index": 1.0583,
"defense_index": 0.9802,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0613
},
"opponent": {
"team": "STL",
"games": 158,
"wins": 77,
"losses": 81,
"win_pct": 0.4873,
"runs_scored": 709.0,
"runs_allowed": 730.0,
"run_differential": -21.0,
"run_differential_per_game": -0.1329,
"avg_runs_scored": 4.4873,
"avg_runs_allowed": 4.6203,
"offense_index": 0.9991,
"defense_index": 0.9721,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0621
},
"edges": {
"quality_edge": 0.1234,
"offense_edge": 0.0583,
"opponent_offense_edge": -0.0009,
"defense_strength": -0.0198,
"opponent_defense_weakness": 0.0279,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0044,
"run_prevention": 0.9957,
"strikeout": 1.0038
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694973",
"profile": {
"available": true,
"pitcher_id": "694973",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 662.0,
"k_percent": 27.9,
"bb_percent": 6.8,
"woba": 0.298,
"xwoba": 0.28,
"sweet_spot_percent": 35.6,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 76.4405,
"avg_hyper_speed": 93.7538,
"whiff_percent": 28.1,
"swing_percent": 51.1
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4382,
"command_and_miss": 0.6443,
"regression_edge": 0.5143,
"xwoba_edge": 0.8857,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0,
"whiff_edge": 0.4286,
"bb_edge": 0.575,
"pitch_design_score": 0.1548
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694973",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 92.62832752735103,
"release_spin_rate": 2107.08006848347,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 92.62832752735103,
"release_spin_rate": 2107.08006848347,
"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.6283,
"release_spin_rate": 2107.0801,
"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.1548,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1059,
"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.4767,
"sample_weight": 1.0,
"run_prevention_factor": 0.9595,
"strikeout_factor": 1.0509,
"walk_factor": 0.954,
"homer_factor": 0.9717,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694973",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9595,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9595,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.954,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9717,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0509,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260924_STL@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260924 | 20260924_TB@NYY | away | Ian Seymour | Ian Seymour | True | 5.0 | 5.0 | 0 | 0 | 0 | 0 | 2/1 | 2/0 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.028795811518325,
"WHIP": 1.130890052356021,
"IP": 127.1,
"games_started": null,
"games_pitched": 44,
"role_avg_IP": 4.8,
"recent_avg_IP": 5.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2879,
"sample_weight": 1.0,
"run_prevention_factor": 0.9755,
"strikeout_factor": 1.0646,
"walk_factor": 0.952,
"homer_factor": 1.0397,
"regression_flag": "neutral",
"k_percent": 29.0,
"bb_percent": 6.7,
"woba": 0.317,
"xwoba": 0.295,
"barrel_percent": 10.4,
"hard_hit_percent": 37.3,
"whiff_percent": 29.4
},
"espn_rank": {
"rank": 302,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.979,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8386,
"prior_weight": 0.1614
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693855",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 44,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 15.0,
"R": 17.0,
"H": 29.0,
"BB": 4.0,
"SO": 32.0,
"HR": 7.0,
"BF": 113.0,
"Pitches": 417.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.4,
"H": 5.8,
"BB": 0.8,
"SO": 6.4,
"HR": 1.4,
"BF": 22.6,
"Pitches": 83.4
},
"rates": {
"ERA": 5.1923,
"WHIP": 1.2692,
"ER_per_IP": 0.57692,
"H_per_IP": 1.11538,
"BB_per_IP": 0.15385,
"SO_per_IP": 1.23077,
"HR_per_IP": 0.26923
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 24.0,
"R": 26.0,
"H": 55.0,
"BB": 9.0,
"SO": 69.0,
"HR": 13.0,
"BF": 228.0,
"Pitches": 859.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.6,
"H": 5.5,
"BB": 0.9,
"SO": 6.9,
"HR": 1.3,
"BF": 22.8,
"Pitches": 85.9
},
"rates": {
"ERA": 4.0248,
"WHIP": 1.1925,
"ER_per_IP": 0.4472,
"H_per_IP": 1.02484,
"BB_per_IP": 0.1677,
"SO_per_IP": 1.28571,
"HR_per_IP": 0.24224
}
},
"season": {
"games": 44,
"totals": {
"IP": 127.1,
"ER": 57.0,
"R": 62.0,
"H": 108.0,
"BB": 36.0,
"SO": 155.0,
"HR": 25.0,
"BF": 529.0,
"Pitches": 2042.0
},
"per_game": {
"IP": 3.0,
"ER": 1.2955,
"R": 1.4091,
"H": 2.4545,
"BB": 0.8182,
"SO": 3.5227,
"HR": 0.5682,
"BF": 12.0227,
"Pitches": 46.4091
},
"rates": {
"ERA": 4.0288,
"WHIP": 1.1309,
"ER_per_IP": 0.44764,
"H_per_IP": 0.84817,
"BB_per_IP": 0.28272,
"SO_per_IP": 1.21728,
"HR_per_IP": 0.19634
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.476,
"predicted_H": 4.998,
"predicted_BB": 1.053,
"predicted_SO": 5.852,
"predicted_HR": 1.122,
"predicted_ERA": 4.5582,
"predicted_WHIP": 1.2379
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4182,
"form_weight": 0.5818,
"form_reliability": 0.8386,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.979,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8386,
"prior_weight": 0.1614
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.476,
"final": 1.4406,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.998,
"final": 3.7443,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.053,
"final": 1.449,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.852,
"final": 5.4957,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.122,
"final": 0.6528,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5582,
"final": 4.5582,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2379,
"final": 1.2379,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 24,
"H": 55,
"BB": 9,
"SO": 69,
"HR": 13,
"ERA": 4.024844720496895,
"WHIP": 1.1925465838509317,
"K9": 11.571428571428571,
"HR9": 2.1801242236024847,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.945486364893428,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.979,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8386,
"prior_weight": 0.1614
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693855",
"player_name": "Ian Seymour",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 158,
"wins": 96,
"losses": 62,
"win_pct": 0.6076,
"runs_scored": 715.0,
"runs_allowed": 636.0,
"run_differential": 79.0,
"run_differential_per_game": 0.5,
"avg_runs_scored": 4.5253,
"avg_runs_allowed": 4.0253,
"offense_index": 1.0086,
"defense_index": 1.1146,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.7,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.2228
},
"opponent": {
"team": "NYY",
"games": 158,
"wins": 91,
"losses": 67,
"win_pct": 0.5759,
"runs_scored": 725.0,
"runs_allowed": 584.0,
"run_differential": 141.0,
"run_differential_per_game": 0.8924,
"avg_runs_scored": 4.5886,
"avg_runs_allowed": 3.6962,
"offense_index": 1.0227,
"defense_index": 1.2139,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2089
},
"edges": {
"quality_edge": 0.0139,
"offense_edge": 0.0086,
"opponent_offense_edge": 0.0227,
"defense_strength": 0.1146,
"opponent_defense_weakness": -0.2139,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0031,
"run_prevention": 0.9915,
"strikeout": 0.9986
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693855",
"profile": {
"available": true,
"pitcher_id": "693855",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 500.0,
"k_percent": 29.0,
"bb_percent": 6.7,
"woba": 0.317,
"xwoba": 0.295,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 10.4,
"hard_hit_percent": 37.3,
"avg_best_speed": 77.1995,
"avg_hyper_speed": 93.8607,
"whiff_percent": 29.4,
"swing_percent": 51.5
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0673,
"command_and_miss": 0.785,
"regression_edge": 0.6286,
"xwoba_edge": 0.4571,
"barrel_edge": -0.7111,
"hard_hit_edge": 0.0857,
"whiff_edge": 0.6143,
"bb_edge": 0.6,
"pitch_design_score": -0.2091
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693855",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 86.1295711647252,
"release_spin_rate": 1962.9440503947853,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 86.1295711647252,
"release_spin_rate": 1962.9440503947853,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.1296,
"release_spin_rate": 1962.9441,
"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.2091,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.4936,
"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.2879,
"sample_weight": 1.0,
"run_prevention_factor": 0.9755,
"strikeout_factor": 1.0646,
"walk_factor": 0.952,
"homer_factor": 1.0397,
"woba_minus_xwoba": 0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "693855",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9755,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9755,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0397,
"adjusted": 2
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0646,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 77,
"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/20260924_TB@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"
}
} |
| 20260924 | 20260924_TB@NYY | home | Cam Schlittler | Cam Schlittler | True | 6.1 | 3.0 | -10 | 1 | 1 | 0 | 3/3 | 2/2 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.9353146853146854,
"WHIP": 0.9073426573426574,
"IP": 190.2,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.958,
"recent_avg_IP": 6.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7044,
"sample_weight": 1.0,
"run_prevention_factor": 0.9401,
"strikeout_factor": 1.076,
"walk_factor": 0.944,
"homer_factor": 0.9644,
"regression_flag": "neutral",
"k_percent": 31.3,
"bb_percent": 6.3,
"woba": 0.243,
"xwoba": 0.262,
"barrel_percent": 7.4,
"hard_hit_percent": 38.4,
"whiff_percent": 29.1
},
"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": 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": "693645",
"report_date": "20260924",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.2,
"ER": 3.0,
"R": 5.0,
"H": 11.0,
"BB": 10.0,
"SO": 41.0,
"HR": 2.0,
"BF": 120.0,
"Pitches": 489.0
},
"per_game": {
"IP": 6.2,
"ER": 0.6,
"R": 1.0,
"H": 2.2,
"BB": 2.0,
"SO": 8.2,
"HR": 0.4,
"BF": 24.0,
"Pitches": 97.8
},
"rates": {
"ERA": 0.8265,
"WHIP": 0.6429,
"ER_per_IP": 0.09184,
"H_per_IP": 0.33673,
"BB_per_IP": 0.30612,
"SO_per_IP": 1.2551,
"HR_per_IP": 0.06122
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 11.0,
"R": 13.0,
"H": 30.0,
"BB": 22.0,
"SO": 77.0,
"HR": 4.0,
"BF": 232.0,
"Pitches": 954.0
},
"per_game": {
"IP": 6.0,
"ER": 1.1,
"R": 1.3,
"H": 3.0,
"BB": 2.2,
"SO": 7.7,
"HR": 0.4,
"BF": 23.2,
"Pitches": 95.4
},
"rates": {
"ERA": 1.6409,
"WHIP": 0.8619,
"ER_per_IP": 0.18232,
"H_per_IP": 0.49724,
"BB_per_IP": 0.36464,
"SO_per_IP": 1.27624,
"HR_per_IP": 0.0663
}
},
"season": {
"games": 32,
"totals": {
"IP": 190.2,
"ER": 41.0,
"R": 50.0,
"H": 126.0,
"BB": 47.0,
"SO": 234.0,
"HR": 16.0,
"BF": 747.0,
"Pitches": 2971.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2812,
"R": 1.5625,
"H": 3.9375,
"BB": 1.4688,
"SO": 7.3125,
"HR": 0.5,
"BF": 23.3438,
"Pitches": 92.8438
},
"rates": {
"ERA": 1.9353,
"WHIP": 0.9073,
"ER_per_IP": 0.21503,
"H_per_IP": 0.66084,
"BB_per_IP": 0.2465,
"SO_per_IP": 1.22727,
"HR_per_IP": 0.08392
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.243,
"predicted_H": 3.333,
"predicted_BB": 2.036,
"predicted_SO": 7.652,
"predicted_HR": 0.494,
"predicted_ERA": 1.774,
"predicted_WHIP": 0.8516
}
},
"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": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.243,
"final": 1.5512,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.333,
"final": 3.1974,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.036,
"final": 2.0213,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.652,
"final": 6.1653,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.494,
"final": 0.2929,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.774,
"final": 1.774,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8516,
"final": 0.8516,
"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.1,
"ER": 11,
"H": 30,
"BB": 22,
"SO": 77,
"HR": 4,
"ERA": 1.6408839779005524,
"WHIP": 0.861878453038674,
"K9": 11.486187845303867,
"HR9": 0.5966850828729282,
"games_pitched": 10,
"quality_starts": 7,
"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-19T00:00:00"
},
"recent_form_boost": 0.6884402565813702,
"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": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.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": 6.1,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"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": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 158,
"wins": 91,
"losses": 67,
"win_pct": 0.5759,
"runs_scored": 725.0,
"runs_allowed": 584.0,
"run_differential": 141.0,
"run_differential_per_game": 0.8924,
"avg_runs_scored": 4.5886,
"avg_runs_allowed": 3.6962,
"offense_index": 1.0227,
"defense_index": 1.2139,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2089
},
"opponent": {
"team": "TB",
"games": 158,
"wins": 96,
"losses": 62,
"win_pct": 0.6076,
"runs_scored": 715.0,
"runs_allowed": 636.0,
"run_differential": 79.0,
"run_differential_per_game": 0.5,
"avg_runs_scored": 4.5253,
"avg_runs_allowed": 4.0253,
"offense_index": 1.0086,
"defense_index": 1.1146,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.7,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.2228
},
"edges": {
"quality_edge": -0.0139,
"offense_edge": 0.0227,
"opponent_offense_edge": 0.0086,
"defense_strength": 0.2139,
"opponent_defense_weakness": -0.1146,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0055,
"run_prevention": 0.9807,
"strikeout": 0.9989
},
"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.3,
"bb_percent": 6.3,
"woba": 0.243,
"xwoba": 0.262,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 38.4,
"avg_best_speed": 77.6822,
"avg_hyper_speed": 93.7825,
"whiff_percent": 29.1,
"swing_percent": 52.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.913,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8793,
"command_and_miss": 0.9379,
"regression_edge": -0.5429,
"xwoba_edge": 1.4,
"barrel_edge": -0.0444,
"hard_hit_edge": -0.0714,
"whiff_edge": 0.5714,
"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.7044,
"sample_weight": 1.0,
"run_prevention_factor": 0.9401,
"strikeout_factor": 1.076,
"walk_factor": 0.944,
"homer_factor": 0.9644,
"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.9401,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9401,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.944,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9644,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.076,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"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/20260924_TB@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"
}
} |
| 20260925 | 20260925_ARI@SD | away | Brandon Pfaadt | Brandon Pfaadt | True | 6.0 | 7.2 | 5 | 5 | 4 | -1 | 8/9 | 2/2 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7168831168831167,
"WHIP": 1.1688311688311688,
"IP": 128.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.944,
"recent_avg_IP": 6.0,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0014,
"sample_weight": 1.0,
"run_prevention_factor": 1.0001,
"strikeout_factor": 0.948,
"walk_factor": 0.93,
"homer_factor": 0.9801,
"regression_flag": "neutral",
"k_percent": 16.4,
"bb_percent": 5.6,
"woba": 0.298,
"xwoba": 0.303,
"barrel_percent": 7.4,
"hard_hit_percent": 35.0,
"whiff_percent": 21.5
},
"espn_rank": {
"rank": 112,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694297",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 16.0,
"R": 16.0,
"H": 32.0,
"BB": 6.0,
"SO": 18.0,
"HR": 3.0,
"BF": 128.0,
"Pitches": 446.0
},
"per_game": {
"IP": 6.0,
"ER": 3.2,
"R": 3.2,
"H": 6.4,
"BB": 1.2,
"SO": 3.6,
"HR": 0.6,
"BF": 25.6,
"Pitches": 89.2
},
"rates": {
"ERA": 4.8,
"WHIP": 1.2667,
"ER_per_IP": 0.53333,
"H_per_IP": 1.06667,
"BB_per_IP": 0.2,
"SO_per_IP": 0.6,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.1,
"ER": 21.0,
"R": 22.0,
"H": 54.0,
"BB": 10.0,
"SO": 42.0,
"HR": 6.0,
"BF": 251.0,
"Pitches": 911.0
},
"per_game": {
"IP": 6.1,
"ER": 2.1,
"R": 2.2,
"H": 5.4,
"BB": 1.0,
"SO": 4.2,
"HR": 0.6,
"BF": 25.1,
"Pitches": 91.1
},
"rates": {
"ERA": 2.9842,
"WHIP": 1.0105,
"ER_per_IP": 0.33158,
"H_per_IP": 0.85263,
"BB_per_IP": 0.15789,
"SO_per_IP": 0.66316,
"HR_per_IP": 0.09474
}
},
"season": {
"games": 28,
"totals": {
"IP": 128.1,
"ER": 53.0,
"R": 57.0,
"H": 120.0,
"BB": 30.0,
"SO": 87.0,
"HR": 14.0,
"BF": 531.0,
"Pitches": 1927.0
},
"per_game": {
"IP": 4.2,
"ER": 1.8929,
"R": 2.0357,
"H": 4.2857,
"BB": 1.0714,
"SO": 3.1071,
"HR": 0.5,
"BF": 18.9643,
"Pitches": 68.8214
},
"rates": {
"ERA": 3.7169,
"WHIP": 1.1688,
"ER_per_IP": 0.41299,
"H_per_IP": 0.93506,
"BB_per_IP": 0.23377,
"SO_per_IP": 0.67792,
"HR_per_IP": 0.10909
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.642,
"predicted_H": 5.686,
"predicted_BB": 1.293,
"predicted_SO": 4.011,
"predicted_HR": 0.631,
"predicted_ERA": 4.0489,
"predicted_WHIP": 1.1885
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.642,
"final": 3.2042,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.686,
"final": 6.644,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.293,
"final": 1.5857,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.011,
"final": 3.5924,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.631,
"final": 0.3698,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0489,
"final": 4.0489,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1885,
"final": 1.1885,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 63.1,
"ER": 21,
"H": 54,
"BB": 10,
"SO": 42,
"HR": 6,
"ERA": 2.984210526315789,
"WHIP": 1.0105263157894737,
"K9": 5.968421052631578,
"HR9": 0.8526315789473684,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.8217271195671689,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694297",
"player_name": "Brandon Pfaadt",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 159,
"wins": 85,
"losses": 74,
"win_pct": 0.5346,
"runs_scored": 717.0,
"runs_allowed": 707.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0629,
"avg_runs_scored": 4.5094,
"avg_runs_allowed": 4.4465,
"offense_index": 1.0086,
"defense_index": 1.0055,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.1,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0721
},
"opponent": {
"team": "SD",
"games": 159,
"wins": 89,
"losses": 70,
"win_pct": 0.5597,
"runs_scored": 699.0,
"runs_allowed": 659.0,
"run_differential": 40.0,
"run_differential_per_game": 0.2516,
"avg_runs_scored": 4.3962,
"avg_runs_allowed": 4.1447,
"offense_index": 0.9833,
"defense_index": 1.0787,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 4.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1867
},
"edges": {
"quality_edge": -0.1146,
"offense_edge": 0.0086,
"opponent_offense_edge": -0.0167,
"defense_strength": 0.0055,
"opponent_defense_weakness": -0.0787,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9962,
"run_prevention": 1.0025,
"strikeout": 0.9979
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694297",
"profile": {
"available": true,
"pitcher_id": "694297",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 508.0,
"k_percent": 16.4,
"bb_percent": 5.6,
"woba": 0.298,
"xwoba": 0.303,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 35.0,
"avg_best_speed": 78.338,
"avg_hyper_speed": 93.4651,
"whiff_percent": 21.5,
"swing_percent": 49.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1963,
"command_and_miss": -0.36,
"regression_edge": -0.1429,
"xwoba_edge": 0.2286,
"barrel_edge": -0.0444,
"hard_hit_edge": 0.4143,
"whiff_edge": -0.5,
"bb_edge": 0.875,
"pitch_design_score": -0.0426
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694297",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.10309497222958,
"release_spin_rate": 2461.9059118108958,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.10309497222958,
"release_spin_rate": 2461.9059118108958,
"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.1031,
"release_spin_rate": 2461.9059,
"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.0426,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3042,
"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.0014,
"sample_weight": 1.0,
"run_prevention_factor": 1.0001,
"strikeout_factor": 0.948,
"walk_factor": 0.93,
"homer_factor": 0.9801,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694297",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0001,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0001,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.93,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9801,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.948,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 28,
"Pitches": 116,
"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/20260925_ARI@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"
}
} |
| 20260925 | 20260925_ARI@SD | home | Casey Mize | Casey Mize | True | 4.2 | 4.0 | -2 | 3 | 7 | 4 | 5/7 | 2/2 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9581151832460733,
"WHIP": 1.1937172774869111,
"IP": 127.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.093,
"recent_avg_IP": 4.533,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0643,
"sample_weight": 1.0,
"run_prevention_factor": 0.9945,
"strikeout_factor": 0.984,
"walk_factor": 0.954,
"homer_factor": 1.0089,
"regression_flag": "neutral",
"k_percent": 20.6,
"bb_percent": 6.8,
"woba": 0.307,
"xwoba": 0.298,
"barrel_percent": 8.1,
"hard_hit_percent": 38.6,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 115,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663554",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 16.0,
"R": 21.0,
"H": 28.0,
"BB": 10.0,
"SO": 14.0,
"HR": 5.0,
"BF": 107.0,
"Pitches": 401.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 4.2,
"H": 5.6,
"BB": 2.0,
"SO": 2.8,
"HR": 1.0,
"BF": 21.4,
"Pitches": 80.2
},
"rates": {
"ERA": 6.3529,
"WHIP": 1.6765,
"ER_per_IP": 0.70588,
"H_per_IP": 1.23529,
"BB_per_IP": 0.44118,
"SO_per_IP": 0.61765,
"HR_per_IP": 0.22059
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.2,
"ER": 31.0,
"R": 36.0,
"H": 52.0,
"BB": 17.0,
"SO": 27.0,
"HR": 10.0,
"BF": 208.0,
"Pitches": 779.0
},
"per_game": {
"IP": 4.2,
"ER": 3.1,
"R": 3.6,
"H": 5.2,
"BB": 1.7,
"SO": 2.7,
"HR": 1.0,
"BF": 20.8,
"Pitches": 77.9
},
"rates": {
"ERA": 5.9786,
"WHIP": 1.4786,
"ER_per_IP": 0.66429,
"H_per_IP": 1.11429,
"BB_per_IP": 0.36429,
"SO_per_IP": 0.57857,
"HR_per_IP": 0.21429
}
},
"season": {
"games": 25,
"totals": {
"IP": 127.1,
"ER": 56.0,
"R": 62.0,
"H": 116.0,
"BB": 36.0,
"SO": 109.0,
"HR": 15.0,
"BF": 528.0,
"Pitches": 2012.0
},
"per_game": {
"IP": 5.0,
"ER": 2.24,
"R": 2.48,
"H": 4.64,
"BB": 1.44,
"SO": 4.36,
"HR": 0.6,
"BF": 21.12,
"Pitches": 80.48
},
"rates": {
"ERA": 3.9581,
"WHIP": 1.1937,
"ER_per_IP": 0.43979,
"H_per_IP": 0.91099,
"BB_per_IP": 0.28272,
"SO_per_IP": 0.85602,
"HR_per_IP": 0.1178
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.915,
"predicted_H": 5.214,
"predicted_BB": 1.803,
"predicted_SO": 3.302,
"predicted_HR": 0.896,
"predicted_ERA": 5.5549,
"predicted_WHIP": 1.4859
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.915,
"final": 2.9507,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.214,
"final": 5.124,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.803,
"final": 1.8858,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.302,
"final": 4.8568,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.896,
"final": 0.9397,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5549,
"final": 5.5549,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4859,
"final": 1.4859,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 46.2,
"ER": 31,
"H": 52,
"BB": 17,
"SO": 27,
"HR": 10,
"ERA": 5.978571428571429,
"WHIP": 1.4785714285714286,
"K9": 5.207142857142857,
"HR9": 1.9285714285714286,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.1702938488904773,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663554",
"player_name": "Casey Mize",
"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": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 159,
"wins": 89,
"losses": 70,
"win_pct": 0.5597,
"runs_scored": 699.0,
"runs_allowed": 659.0,
"run_differential": 40.0,
"run_differential_per_game": 0.2516,
"avg_runs_scored": 4.3962,
"avg_runs_allowed": 4.1447,
"offense_index": 0.9833,
"defense_index": 1.0787,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 4.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1867
},
"opponent": {
"team": "ARI",
"games": 159,
"wins": 85,
"losses": 74,
"win_pct": 0.5346,
"runs_scored": 717.0,
"runs_allowed": 707.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0629,
"avg_runs_scored": 4.5094,
"avg_runs_allowed": 4.4465,
"offense_index": 1.0086,
"defense_index": 1.0055,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.1,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0721
},
"edges": {
"quality_edge": 0.1146,
"offense_edge": -0.0167,
"opponent_offense_edge": 0.0086,
"defense_strength": 0.0787,
"opponent_defense_weakness": -0.0055,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0066,
"run_prevention": 0.9878,
"strikeout": 1.0028
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663554",
"profile": {
"available": true,
"pitcher_id": "663554",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 508.0,
"k_percent": 20.6,
"bb_percent": 6.8,
"woba": 0.307,
"xwoba": 0.298,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.6,
"avg_best_speed": 78.8539,
"avg_hyper_speed": 94.0019,
"whiff_percent": 23.6,
"swing_percent": 47.6
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0901,
"command_and_miss": -0.045,
"regression_edge": 0.2571,
"xwoba_edge": 0.3714,
"barrel_edge": -0.2,
"hard_hit_edge": -0.1,
"whiff_edge": -0.2,
"bb_edge": 0.575,
"pitch_design_score": -0.0025
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663554",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 74,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 89.81822385564924,
"release_spin_rate": 2090.099354593912,
"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": 74,
"pitch_usage": 0.0,
"release_speed": 89.81822385564924,
"release_spin_rate": 2090.099354593912,
"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.8182,
"release_spin_rate": 2090.0994,
"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.0025,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0182,
"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.0643,
"sample_weight": 1.0,
"run_prevention_factor": 0.9945,
"strikeout_factor": 0.984,
"walk_factor": 0.954,
"homer_factor": 1.0089,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663554",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9945,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9945,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0089,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.984,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260925_ARI@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"
}
} |
| 20260925 | 20260925_ATL@MIA | away | Ray Kerr | Ray Kerr | True | 5.0 | 3.0 | -6 | 0 | 0 | 0 | 0/2 | 3/1 | 5/0 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 1.7608695652173911,
"WHIP": 0.5217391304347826,
"IP": 15.1,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 3.222,
"recent_avg_IP": 3.222,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2233,
"sample_weight": 0.45,
"run_prevention_factor": 0.981,
"strikeout_factor": 0.9969,
"walk_factor": 0.9343,
"homer_factor": 0.9737,
"regression_flag": "negative_pitcher_regression",
"k_percent": 20.0,
"bb_percent": 1.8,
"woba": 0.205,
"xwoba": 0.266,
"barrel_percent": 7.3,
"hard_hit_percent": 34.1,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 280,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.139,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3856,
"prior_weight": 0.6144
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678061",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 12.0,
"ER": 2.0,
"R": 2.0,
"H": 5.0,
"BB": 0.0,
"SO": 10.0,
"HR": 2.0,
"BF": 39.0,
"Pitches": 129.0
},
"per_game": {
"IP": 2.1,
"ER": 0.4,
"R": 0.4,
"H": 1.0,
"BB": 0.0,
"SO": 2.0,
"HR": 0.4,
"BF": 7.8,
"Pitches": 25.8
},
"rates": {
"ERA": 1.5,
"WHIP": 0.4167,
"ER_per_IP": 0.16667,
"H_per_IP": 0.41667,
"BB_per_IP": 0.0,
"SO_per_IP": 0.83333,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 15.1,
"ER": 3.0,
"R": 3.0,
"H": 7.0,
"BB": 1.0,
"SO": 11.0,
"HR": 2.0,
"BF": 55.0,
"Pitches": 180.0
},
"per_game": {
"IP": 2.0,
"ER": 0.375,
"R": 0.375,
"H": 0.875,
"BB": 0.125,
"SO": 1.375,
"HR": 0.25,
"BF": 6.875,
"Pitches": 22.5
},
"rates": {
"ERA": 1.7609,
"WHIP": 0.5217,
"ER_per_IP": 0.19565,
"H_per_IP": 0.45652,
"BB_per_IP": 0.06522,
"SO_per_IP": 0.71739,
"HR_per_IP": 0.13043
}
},
"season": {
"games": 8,
"totals": {
"IP": 15.1,
"ER": 3.0,
"R": 3.0,
"H": 7.0,
"BB": 1.0,
"SO": 11.0,
"HR": 2.0,
"BF": 55.0,
"Pitches": 180.0
},
"per_game": {
"IP": 2.0,
"ER": 0.375,
"R": 0.375,
"H": 0.875,
"BB": 0.125,
"SO": 1.375,
"HR": 0.25,
"BF": 6.875,
"Pitches": 22.5
},
"rates": {
"ERA": 1.7609,
"WHIP": 0.5217,
"ER_per_IP": 0.19565,
"H_per_IP": 0.45652,
"BB_per_IP": 0.06522,
"SO_per_IP": 0.71739,
"HR_per_IP": 0.13043
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.348,
"predicted_H": 2.712,
"predicted_BB": 0.846,
"predicted_SO": 3.108,
"predicted_HR": 0.533,
"predicted_ERA": 3.4459,
"predicted_WHIP": 1.0104
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6096,
"form_weight": 0.3904,
"form_reliability": 0.3856,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.139,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3856,
"prior_weight": 0.6144
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.348,
"final": 0.5263,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 2.712,
"final": 1.0588,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.846,
"final": 2.159,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.108,
"final": 4.2613,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.533,
"final": 0.2081,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4459,
"final": 3.4459,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0104,
"final": 1.0104,
"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": 15.1,
"ER": 3,
"H": 7,
"BB": 1,
"SO": 11,
"HR": 2,
"ERA": 1.7608695652173911,
"WHIP": 0.5217391304347825,
"K9": 6.456521739130434,
"HR9": 1.1739130434782608,
"games_pitched": 8,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.8326982331371388,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.139,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3856,
"prior_weight": 0.6144
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678061",
"player_name": "Ray Kerr",
"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": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 159,
"wins": 93,
"losses": 66,
"win_pct": 0.5849,
"runs_scored": 731.0,
"runs_allowed": 615.0,
"run_differential": 116.0,
"run_differential_per_game": 0.7296,
"avg_runs_scored": 4.5975,
"avg_runs_allowed": 3.8679,
"offense_index": 1.0274,
"defense_index": 1.1569,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.7,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.1618
},
"opponent": {
"team": "MIA",
"games": 159,
"wins": 78,
"losses": 81,
"win_pct": 0.4906,
"runs_scored": 704.0,
"runs_allowed": 701.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0189,
"avg_runs_scored": 4.4277,
"avg_runs_allowed": 4.4088,
"offense_index": 0.9894,
"defense_index": 1.015,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0057
},
"edges": {
"quality_edge": 0.1675,
"offense_edge": 0.0274,
"opponent_offense_edge": -0.0106,
"defense_strength": 0.1569,
"opponent_defense_weakness": -0.015,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0118,
"run_prevention": 0.9742,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678061",
"profile": {
"available": true,
"pitcher_id": "678061",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 50.0,
"k_percent": 20.0,
"bb_percent": 1.8,
"woba": 0.205,
"xwoba": 0.266,
"sweet_spot_percent": 26.8,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 34.1,
"avg_best_speed": 78.2755,
"avg_hyper_speed": 93.7728,
"whiff_percent": 25.8,
"swing_percent": 51.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.0718,
"command_and_miss": 0.2764,
"regression_edge": -1.7429,
"xwoba_edge": 1.2857,
"barrel_edge": -0.0222,
"hard_hit_edge": 0.5429,
"whiff_edge": 0.1143,
"bb_edge": 1.825,
"pitch_design_score": -0.0191
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678061",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 25,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 25,
"pitch_usage": 0.0,
"release_speed": 89.52283282543786,
"release_spin_rate": 2148.8918500733625,
"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": 25,
"pitch_usage": 0.0,
"release_speed": 89.52283282543786,
"release_spin_rate": 2148.8918500733625,
"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.5228,
"release_spin_rate": 2148.8919,
"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.0191,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1363,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2233,
"sample_weight": 0.45,
"run_prevention_factor": 0.981,
"strikeout_factor": 0.9969,
"walk_factor": 0.9343,
"homer_factor": 0.9737,
"woba_minus_xwoba": -0.061,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "678061",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9914,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9914,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9704,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9882,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9986,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "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/20260925_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_ATL@MIA | home | Eury Pérez | Eury Pérez | True | 5.0 | 9.0 | 12 | 1 | 0 | -1 | 5/1 | 2/1 | 6/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.14,
"WHIP": 1.2666666666666666,
"IP": 150.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.321,
"recent_avg_IP": 4.267,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0161,
"sample_weight": 1.0,
"run_prevention_factor": 0.9986,
"strikeout_factor": 1.0423,
"walk_factor": 1.03,
"homer_factor": 1.0712,
"regression_flag": "neutral",
"k_percent": 25.7,
"bb_percent": 10.6,
"woba": 0.314,
"xwoba": 0.315,
"barrel_percent": 10.5,
"hard_hit_percent": 39.5,
"whiff_percent": 28.7
},
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "691587",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.1,
"ER": 19.0,
"R": 21.0,
"H": 31.0,
"BB": 11.0,
"SO": 20.0,
"HR": 6.0,
"BF": 101.0,
"Pitches": 401.0
},
"per_game": {
"IP": 4.0,
"ER": 3.8,
"R": 4.2,
"H": 6.2,
"BB": 2.2,
"SO": 4.0,
"HR": 1.2,
"BF": 20.2,
"Pitches": 80.2
},
"rates": {
"ERA": 8.8448,
"WHIP": 2.1724,
"ER_per_IP": 0.98276,
"H_per_IP": 1.60345,
"BB_per_IP": 0.56897,
"SO_per_IP": 1.03448,
"HR_per_IP": 0.31034
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.1,
"ER": 29.0,
"R": 32.0,
"H": 48.0,
"BB": 27.0,
"SO": 50.0,
"HR": 7.0,
"BF": 208.0,
"Pitches": 866.0
},
"per_game": {
"IP": 4.2,
"ER": 2.9,
"R": 3.2,
"H": 4.8,
"BB": 2.7,
"SO": 5.0,
"HR": 0.7,
"BF": 20.8,
"Pitches": 86.6
},
"rates": {
"ERA": 5.7574,
"WHIP": 1.6544,
"ER_per_IP": 0.63971,
"H_per_IP": 1.05882,
"BB_per_IP": 0.59559,
"SO_per_IP": 1.10294,
"HR_per_IP": 0.15441
}
},
"season": {
"games": 29,
"totals": {
"IP": 150.0,
"ER": 69.0,
"R": 77.0,
"H": 123.0,
"BB": 67.0,
"SO": 162.0,
"HR": 20.0,
"BF": 631.0,
"Pitches": 2568.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3793,
"R": 2.6552,
"H": 4.2414,
"BB": 2.3103,
"SO": 5.5862,
"HR": 0.6897,
"BF": 21.7586,
"Pitches": 88.5517
},
"rates": {
"ERA": 4.14,
"WHIP": 1.2667,
"ER_per_IP": 0.46,
"H_per_IP": 0.82,
"BB_per_IP": 0.44667,
"SO_per_IP": 1.08,
"HR_per_IP": 0.13333
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.302,
"predicted_H": 5.562,
"predicted_BB": 2.415,
"predicted_SO": 4.794,
"predicted_HR": 0.96,
"predicted_ERA": 6.4984,
"predicted_WHIP": 1.7441
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.302,
"final": 2.3532,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.562,
"final": 5.3304,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.415,
"final": 2.244,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.794,
"final": 5.2911,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.96,
"final": 0.9765,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.4984,
"final": 6.4984,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7441,
"final": 1.7441,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.1,
"ER": 29,
"H": 48,
"BB": 27,
"SO": 50,
"HR": 7,
"ERA": 5.75735294117647,
"WHIP": 1.6544117647058822,
"K9": 9.926470588235293,
"HR9": 1.3897058823529411,
"games_pitched": 10,
"quality_starts": 2,
"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-22T00:00:00"
},
"recent_form_boost": 1.1498027774619057,
"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": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691587",
"player_name": "Eury P\u00e9rez",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 159,
"wins": 78,
"losses": 81,
"win_pct": 0.4906,
"runs_scored": 704.0,
"runs_allowed": 701.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0189,
"avg_runs_scored": 4.4277,
"avg_runs_allowed": 4.4088,
"offense_index": 0.9894,
"defense_index": 1.015,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0057
},
"opponent": {
"team": "ATL",
"games": 159,
"wins": 93,
"losses": 66,
"win_pct": 0.5849,
"runs_scored": 731.0,
"runs_allowed": 615.0,
"run_differential": 116.0,
"run_differential_per_game": 0.7296,
"avg_runs_scored": 4.5975,
"avg_runs_allowed": 3.8679,
"offense_index": 1.0274,
"defense_index": 1.1569,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.7,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.1618
},
"edges": {
"quality_edge": -0.1675,
"offense_edge": -0.0106,
"opponent_offense_edge": 0.0274,
"defense_strength": 0.015,
"opponent_defense_weakness": -0.1569,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9927,
"run_prevention": 1.0113,
"strikeout": 0.9928
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691587",
"profile": {
"available": true,
"pitcher_id": "691587",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 602.0,
"k_percent": 25.7,
"bb_percent": 10.6,
"woba": 0.314,
"xwoba": 0.315,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 39.5,
"avg_best_speed": 76.9293,
"avg_hyper_speed": 94.2717,
"whiff_percent": 28.7,
"swing_percent": 50.9
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1512,
"command_and_miss": 0.3479,
"regression_edge": -0.0286,
"xwoba_edge": -0.1143,
"barrel_edge": -0.7333,
"hard_hit_edge": -0.2286,
"whiff_edge": 0.5286,
"bb_edge": -0.375,
"pitch_design_score": 0.1642
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691587",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.79616242963277,
"release_spin_rate": 2525.323439420152,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.79616242963277,
"release_spin_rate": 2525.323439420152,
"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.7962,
"release_spin_rate": 2525.3234,
"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.1642,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.173,
"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.0161,
"sample_weight": 1.0,
"run_prevention_factor": 0.9986,
"strikeout_factor": 1.0423,
"walk_factor": 1.03,
"homer_factor": 1.0712,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "691587",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9986,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9986,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.03,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0712,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0423,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by +12 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260925_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_BAL@NYY | away | Trevor Rogers | Brandon Young | False | 6.1 | 5.0 | -4 | 1 | 1 | 0 | 4/2 | 3/3 | 3/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.0744466800804835,
"WHIP": 1.1830985915492958,
"IP": 165.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.713,
"recent_avg_IP": 6.6,
"last_start_IP": 8.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2779,
"sample_weight": 1.0,
"run_prevention_factor": 0.9764,
"strikeout_factor": 0.9983,
"walk_factor": 0.932,
"homer_factor": 0.9619,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 5.7,
"woba": 0.304,
"xwoba": 0.291,
"barrel_percent": 6.6,
"hard_hit_percent": 36.1,
"whiff_percent": 24.3
},
"espn_rank": {
"rank": 80,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669432",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 14.0,
"R": 14.0,
"H": 29.0,
"BB": 3.0,
"SO": 39.0,
"HR": 5.0,
"BF": 126.0,
"Pitches": 478.0
},
"per_game": {
"IP": 6.2,
"ER": 2.8,
"R": 2.8,
"H": 5.8,
"BB": 0.6,
"SO": 7.8,
"HR": 1.0,
"BF": 25.2,
"Pitches": 95.6
},
"rates": {
"ERA": 3.8182,
"WHIP": 0.9697,
"ER_per_IP": 0.42424,
"H_per_IP": 0.87879,
"BB_per_IP": 0.09091,
"SO_per_IP": 1.18182,
"HR_per_IP": 0.15152
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 27.0,
"R": 30.0,
"H": 57.0,
"BB": 7.0,
"SO": 70.0,
"HR": 9.0,
"BF": 247.0,
"Pitches": 945.0
},
"per_game": {
"IP": 6.1,
"ER": 2.7,
"R": 3.0,
"H": 5.7,
"BB": 0.7,
"SO": 7.0,
"HR": 0.9,
"BF": 24.7,
"Pitches": 94.5
},
"rates": {
"ERA": 3.9194,
"WHIP": 1.0323,
"ER_per_IP": 0.43548,
"H_per_IP": 0.91935,
"BB_per_IP": 0.1129,
"SO_per_IP": 1.12903,
"HR_per_IP": 0.14516
}
},
"season": {
"games": 29,
"totals": {
"IP": 165.2,
"ER": 75.0,
"R": 80.0,
"H": 157.0,
"BB": 39.0,
"SO": 153.0,
"HR": 19.0,
"BF": 682.0,
"Pitches": 2634.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5862,
"R": 2.7586,
"H": 5.4138,
"BB": 1.3448,
"SO": 5.2759,
"HR": 0.6552,
"BF": 23.5172,
"Pitches": 90.8276
},
"rates": {
"ERA": 4.0744,
"WHIP": 1.1831,
"ER_per_IP": 0.45272,
"H_per_IP": 0.94769,
"BB_per_IP": 0.23541,
"SO_per_IP": 0.92354,
"HR_per_IP": 0.11469
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.828,
"predicted_H": 5.828,
"predicted_BB": 1.043,
"predicted_SO": 6.893,
"predicted_HR": 0.907,
"predicted_ERA": 4.0093,
"predicted_WHIP": 1.0825
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.828,
"final": 2.0746,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.828,
"final": 5.0746,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.043,
"final": 1.8496,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.893,
"final": 5.2885,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.907,
"final": 0.9453,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0093,
"final": 4.0093,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0825,
"final": 1.0825,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 27,
"H": 57,
"BB": 7,
"SO": 70,
"HR": 9,
"ERA": 3.9193548387096775,
"WHIP": 1.032258064516129,
"K9": 10.161290322580646,
"HR9": 1.3064516129032258,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.9274741484296478,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669432",
"player_name": "Trevor Rogers",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 159,
"wins": 78,
"losses": 81,
"win_pct": 0.4906,
"runs_scored": 705.0,
"runs_allowed": 731.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1635,
"avg_runs_scored": 4.434,
"avg_runs_allowed": 4.5975,
"offense_index": 0.9874,
"defense_index": 0.9768,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 3.2,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.007
},
"opponent": {
"team": "NYY",
"games": 159,
"wins": 92,
"losses": 67,
"win_pct": 0.5786,
"runs_scored": 731.0,
"runs_allowed": 588.0,
"run_differential": 143.0,
"run_differential_per_game": 0.8994,
"avg_runs_scored": 4.5975,
"avg_runs_allowed": 3.6981,
"offense_index": 1.0238,
"defense_index": 1.2143,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.212
},
"edges": {
"quality_edge": -0.205,
"offense_edge": -0.0126,
"opponent_offense_edge": 0.0238,
"defense_strength": -0.0232,
"opponent_defense_weakness": -0.2143,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9902,
"run_prevention": 1.0164,
"strikeout": 0.9919
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669432",
"profile": {
"available": true,
"pitcher_id": "669432",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 651.0,
"k_percent": 22.4,
"bb_percent": 5.7,
"woba": 0.304,
"xwoba": 0.291,
"sweet_spot_percent": 31.6,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 36.1,
"avg_best_speed": 77.0056,
"avg_hyper_speed": 93.6766,
"whiff_percent": 24.3,
"swing_percent": 53.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3602,
"command_and_miss": 0.1607,
"regression_edge": 0.3714,
"xwoba_edge": 0.5714,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.2571,
"whiff_edge": -0.1,
"bb_edge": 0.85,
"pitch_design_score": -0.0345
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669432",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.24825957326814,
"release_spin_rate": 2207.9175662184966,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.24825957326814,
"release_spin_rate": 2207.9175662184966,
"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.2483,
"release_spin_rate": 2207.9176,
"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.0345,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2462,
"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.2779,
"sample_weight": 1.0,
"run_prevention_factor": 0.9764,
"strikeout_factor": 0.9983,
"walk_factor": 0.932,
"homer_factor": 0.9619,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669432",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9764,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9764,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.932,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9619,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 0.9983,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 116,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260925_BAL@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"
}
} |
| 20260925 | 20260925_BAL@NYY | home | Brendan Beck | Ryan Yarbrough | False | 3.0 | 2.1 | -2 | 1 | 0 | -1 | 2/4 | 4/1 | 7/5 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 8.217391304347826,
"WHIP": 1.5652173913043477,
"IP": 7.2,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 3.667,
"recent_avg_IP": 3.667,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6184,
"sample_weight": 0.45,
"run_prevention_factor": 1.0526,
"strikeout_factor": 1.0026,
"walk_factor": 1.0504,
"homer_factor": 1.1687,
"regression_flag": "neutral",
"k_percent": 14.7,
"bb_percent": 14.7,
"woba": 0.444,
"xwoba": 0.435,
"barrel_percent": 25.0,
"hard_hit_percent": 62.5,
"whiff_percent": 33.3
},
"espn_rank": {
"rank": 667,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.569,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2389,
"prior_weight": 0.7611
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694341",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 7.2,
"ER": 7.0,
"R": 7.0,
"H": 7.0,
"BB": 5.0,
"SO": 5.0,
"HR": 4.0,
"BF": 34.0,
"Pitches": 149.0
},
"per_game": {
"IP": 2.2,
"ER": 2.3333,
"R": 2.3333,
"H": 2.3333,
"BB": 1.6667,
"SO": 1.6667,
"HR": 1.3333,
"BF": 11.3333,
"Pitches": 49.6667
},
"rates": {
"ERA": 8.2174,
"WHIP": 1.5652,
"ER_per_IP": 0.91304,
"H_per_IP": 0.91304,
"BB_per_IP": 0.65217,
"SO_per_IP": 0.65217,
"HR_per_IP": 0.52174
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 7.2,
"ER": 7.0,
"R": 7.0,
"H": 7.0,
"BB": 5.0,
"SO": 5.0,
"HR": 4.0,
"BF": 34.0,
"Pitches": 149.0
},
"per_game": {
"IP": 2.2,
"ER": 2.3333,
"R": 2.3333,
"H": 2.3333,
"BB": 1.6667,
"SO": 1.6667,
"HR": 1.3333,
"BF": 11.3333,
"Pitches": 49.6667
},
"rates": {
"ERA": 8.2174,
"WHIP": 1.5652,
"ER_per_IP": 0.91304,
"H_per_IP": 0.91304,
"BB_per_IP": 0.65217,
"SO_per_IP": 0.65217,
"HR_per_IP": 0.52174
}
},
"season": {
"games": 3,
"totals": {
"IP": 7.2,
"ER": 7.0,
"R": 7.0,
"H": 7.0,
"BB": 5.0,
"SO": 5.0,
"HR": 4.0,
"BF": 34.0,
"Pitches": 149.0
},
"per_game": {
"IP": 2.2,
"ER": 2.3333,
"R": 2.3333,
"H": 2.3333,
"BB": 1.6667,
"SO": 1.6667,
"HR": 1.3333,
"BF": 11.3333,
"Pitches": 49.6667
},
"rates": {
"ERA": 8.2174,
"WHIP": 1.5652,
"ER_per_IP": 0.91304,
"H_per_IP": 0.91304,
"BB_per_IP": 0.65217,
"SO_per_IP": 0.65217,
"HR_per_IP": 0.52174
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 2.24,
"predicted_H": 3.561,
"predicted_BB": 1.632,
"predicted_SO": 3.198,
"predicted_HR": 0.876,
"predicted_ERA": 5.4757,
"predicted_WHIP": 1.4106
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6716,
"form_weight": 0.3284,
"form_reliability": 0.2389,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.569,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2389,
"prior_weight": 0.7611
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.24,
"final": 1.4073,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.561,
"final": 2.5127,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.632,
"final": 3.2223,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.198,
"final": 5.7513,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.876,
"final": 0.9593,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4757,
"final": 5.4757,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4106,
"final": 1.4106,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 7.2,
"ER": 7,
"H": 7,
"BB": 5,
"SO": 5,
"HR": 4,
"ERA": 8.217391304347826,
"WHIP": 1.565217391304348,
"K9": 5.869565217391305,
"HR9": 4.695652173913044,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 1.1081784685618115,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.569,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2389,
"prior_weight": 0.7611
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694341",
"player_name": "Brendan Beck",
"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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 159,
"wins": 92,
"losses": 67,
"win_pct": 0.5786,
"runs_scored": 731.0,
"runs_allowed": 588.0,
"run_differential": 143.0,
"run_differential_per_game": 0.8994,
"avg_runs_scored": 4.5975,
"avg_runs_allowed": 3.6981,
"offense_index": 1.0238,
"defense_index": 1.2143,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.212
},
"opponent": {
"team": "BAL",
"games": 159,
"wins": 78,
"losses": 81,
"win_pct": 0.4906,
"runs_scored": 705.0,
"runs_allowed": 731.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1635,
"avg_runs_scored": 4.434,
"avg_runs_allowed": 4.5975,
"offense_index": 0.9874,
"defense_index": 0.9768,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 3.2,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.007
},
"edges": {
"quality_edge": 0.205,
"offense_edge": 0.0238,
"opponent_offense_edge": -0.0126,
"defense_strength": 0.2143,
"opponent_defense_weakness": 0.0232,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0151,
"run_prevention": 0.9663,
"strikeout": 1.0072
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694341",
"profile": {
"available": true,
"pitcher_id": "694341",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 31.0,
"k_percent": 14.7,
"bb_percent": 14.7,
"woba": 0.444,
"xwoba": 0.435,
"sweet_spot_percent": 58.3,
"barrel_batted_rate": 25.0,
"hard_hit_percent": 62.5,
"avg_best_speed": 86.3721,
"avg_hyper_speed": 97.4373,
"whiff_percent": 33.3,
"swing_percent": 42.3
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -2.3293,
"command_and_miss": -0.3343,
"regression_edge": 0.2571,
"xwoba_edge": -2.5,
"barrel_edge": -2.5,
"hard_hit_edge": -2.5,
"whiff_edge": 1.1857,
"bb_edge": -1.4,
"pitch_design_score": -0.109
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694341",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 69,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 87.9177608311229,
"release_spin_rate": 2129.730437665782,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 87.9177608311229,
"release_spin_rate": 2129.730437665782,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.9178,
"release_spin_rate": 2129.7304,
"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.109,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7784,
"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.6184,
"sample_weight": 0.45,
"run_prevention_factor": 1.0526,
"strikeout_factor": 1.0026,
"walk_factor": 1.0504,
"homer_factor": 1.1687,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694341",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0237,
"adjusted": 5
},
"predicted_H": {
"original": 5.0,
"factor": 1.0237,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0227,
"adjusted": 2
},
"predicted_HR": {
"original": 3.0,
"factor": 1.0759,
"adjusted": 3
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0012,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 15,
"Pitches": 72,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260925_BAL@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"
}
} |
| 20260925 | 20260925_CHC@BOS | away | Clay Holmes | David Peterson | False | 5.2 | 5.0 | -2 | 2 | 0 | -2 | 2/3 | 3/2 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.247422680412371,
"WHIP": 1.1649484536082475,
"IP": 97.0,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.706,
"recent_avg_IP": 5.667,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0148,
"sample_weight": 1.0,
"run_prevention_factor": 0.9987,
"strikeout_factor": 0.9651,
"walk_factor": 1.014,
"homer_factor": 0.9607,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.8,
"bb_percent": 9.8,
"woba": 0.268,
"xwoba": 0.304,
"barrel_percent": 4.3,
"hard_hit_percent": 41.1,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 82,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605280",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 16.0,
"R": 17.0,
"H": 21.0,
"BB": 16.0,
"SO": 25.0,
"HR": 2.0,
"BF": 121.0,
"Pitches": 471.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.4,
"H": 4.2,
"BB": 3.2,
"SO": 5.0,
"HR": 0.4,
"BF": 24.2,
"Pitches": 94.2
},
"rates": {
"ERA": 5.0824,
"WHIP": 1.3059,
"ER_per_IP": 0.56471,
"H_per_IP": 0.74118,
"BB_per_IP": 0.56471,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.07059
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 27.0,
"R": 28.0,
"H": 46.0,
"BB": 25.0,
"SO": 44.0,
"HR": 3.0,
"BF": 231.0,
"Pitches": 905.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.8,
"H": 4.6,
"BB": 2.5,
"SO": 4.4,
"HR": 0.3,
"BF": 23.1,
"Pitches": 90.5
},
"rates": {
"ERA": 4.4724,
"WHIP": 1.3067,
"ER_per_IP": 0.49693,
"H_per_IP": 0.84663,
"BB_per_IP": 0.46012,
"SO_per_IP": 0.80982,
"HR_per_IP": 0.05521
}
},
"season": {
"games": 17,
"totals": {
"IP": 97.0,
"ER": 35.0,
"R": 36.0,
"H": 74.0,
"BB": 39.0,
"SO": 75.0,
"HR": 6.0,
"BF": 399.0,
"Pitches": 1535.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0588,
"R": 2.1176,
"H": 4.3529,
"BB": 2.2941,
"SO": 4.4118,
"HR": 0.3529,
"BF": 23.4706,
"Pitches": 90.2941
},
"rates": {
"ERA": 3.2474,
"WHIP": 1.1649,
"ER_per_IP": 0.36082,
"H_per_IP": 0.76289,
"BB_per_IP": 0.40206,
"SO_per_IP": 0.7732,
"HR_per_IP": 0.06186
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.805,
"predicted_H": 4.619,
"predicted_BB": 2.614,
"predicted_SO": 4.786,
"predicted_HR": 0.462,
"predicted_ERA": 4.5276,
"predicted_WHIP": 1.2971
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.805,
"final": 2.4459,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.619,
"final": 3.4508,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.614,
"final": 2.7862,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.786,
"final": 5.7735,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.462,
"final": 0.2559,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5276,
"final": 4.5276,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2971,
"final": 1.2971,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 27,
"H": 46,
"BB": 25,
"SO": 44,
"HR": 3,
"ERA": 4.47239263803681,
"WHIP": 1.3067484662576687,
"K9": 7.288343558282209,
"HR9": 0.49693251533742333,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
},
"recent_form_boost": 0.9965531608974887,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605280",
"player_name": "Clay Holmes",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"predicted_HR": 0.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "CHC",
"games": 159,
"wins": 88,
"losses": 71,
"win_pct": 0.5535,
"runs_scored": 841.0,
"runs_allowed": 695.0,
"run_differential": 146.0,
"run_differential_per_game": 0.9182,
"avg_runs_scored": 5.2893,
"avg_runs_allowed": 4.3711,
"offense_index": 1.1777,
"defense_index": 1.0275,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.8,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.1579
},
"opponent": {
"team": "BOS",
"games": 159,
"wins": 85,
"losses": 74,
"win_pct": 0.5346,
"runs_scored": 681.0,
"runs_allowed": 602.0,
"run_differential": 79.0,
"run_differential_per_game": 0.4969,
"avg_runs_scored": 4.283,
"avg_runs_allowed": 3.7862,
"offense_index": 0.9536,
"defense_index": 1.1863,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 2.8,
"run_differential": -6.0
},
"available": true,
"quality_score": 0.0553
},
"edges": {
"quality_edge": 0.1026,
"offense_edge": 0.1777,
"opponent_offense_edge": -0.0464,
"defense_strength": 0.0275,
"opponent_defense_weakness": -0.1863,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0068,
"run_prevention": 0.9847,
"strikeout": 1.0068
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605280",
"profile": {
"available": true,
"pitcher_id": "605280",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 374.0,
"k_percent": 18.8,
"bb_percent": 9.8,
"woba": 0.268,
"xwoba": 0.304,
"sweet_spot_percent": 27.0,
"barrel_batted_rate": 4.3,
"hard_hit_percent": 41.1,
"avg_best_speed": 78.989,
"avg_hyper_speed": 94.1735,
"whiff_percent": 22.1,
"swing_percent": 45.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.398,
"command_and_miss": -0.3857,
"regression_edge": -1.0286,
"xwoba_edge": 0.2,
"barrel_edge": 0.6444,
"hard_hit_edge": -0.4571,
"whiff_edge": -0.4143,
"bb_edge": -0.175,
"pitch_design_score": -0.0616
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605280",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.76414929025393,
"release_spin_rate": 2158.927352212928,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.76414929025393,
"release_spin_rate": 2158.927352212928,
"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.7641,
"release_spin_rate": 2158.9274,
"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.0616,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4398,
"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.0148,
"sample_weight": 1.0,
"run_prevention_factor": 0.9987,
"strikeout_factor": 0.9651,
"walk_factor": 1.014,
"homer_factor": 0.9607,
"woba_minus_xwoba": -0.036,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "605280",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9987,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9987,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.014,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9607,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9651,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260925_CHC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_CHC@BOS | home | Alec Gamboa | Brayan Bello | False | 5.0 | 4.0 | -3 | 2 | 0 | -2 | 3/4 | 4/1 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.1612903225806452,
"WHIP": 1.064516129032258,
"IP": 31.0,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 1.333,
"recent_avg_IP": 1.333,
"last_start_IP": 1.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1735,
"sample_weight": 0.45,
"run_prevention_factor": 0.9853,
"strikeout_factor": 0.9702,
"walk_factor": 0.9928,
"homer_factor": 0.9488,
"regression_flag": "neutral",
"k_percent": 18.2,
"bb_percent": 8.3,
"woba": 0.269,
"xwoba": 0.26,
"barrel_percent": 2.3,
"hard_hit_percent": 40.9,
"whiff_percent": 17.2
},
"espn_rank": {
"rank": 202,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 31.0,
"season_ERA": 1.161,
"season_WHIP": 1.065,
"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": 6.346,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5593,
"prior_weight": 0.4407
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687941",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 3.0,
"SO": 4.0,
"HR": 0.0,
"BF": 21.0,
"Pitches": 78.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.2,
"BB": 0.6,
"SO": 0.8,
"HR": 0.0,
"BF": 4.2,
"Pitches": 15.6
},
"rates": {
"ERA": 1.8,
"WHIP": 1.8,
"ER_per_IP": 0.2,
"H_per_IP": 1.2,
"BB_per_IP": 0.6,
"SO_per_IP": 0.8,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 12.2,
"ER": 1.0,
"R": 1.0,
"H": 9.0,
"BB": 5.0,
"SO": 9.0,
"HR": 0.0,
"BF": 49.0,
"Pitches": 177.0
},
"per_game": {
"IP": 1.1,
"ER": 0.1,
"R": 0.1,
"H": 0.9,
"BB": 0.5,
"SO": 0.9,
"HR": 0.0,
"BF": 4.9,
"Pitches": 17.7
},
"rates": {
"ERA": 0.7105,
"WHIP": 1.1053,
"ER_per_IP": 0.07895,
"H_per_IP": 0.71053,
"BB_per_IP": 0.39474,
"SO_per_IP": 0.71053,
"HR_per_IP": 0.0
}
},
"season": {
"games": 20,
"totals": {
"IP": 31.0,
"ER": 4.0,
"R": 5.0,
"H": 23.0,
"BB": 10.0,
"SO": 22.0,
"HR": 1.0,
"BF": 121.0,
"Pitches": 426.0
},
"per_game": {
"IP": 1.2,
"ER": 0.2,
"R": 0.25,
"H": 1.15,
"BB": 0.5,
"SO": 1.1,
"HR": 0.05,
"BF": 6.05,
"Pitches": 21.3
},
"rates": {
"ERA": 1.1613,
"WHIP": 1.0645,
"ER_per_IP": 0.12903,
"H_per_IP": 0.74194,
"BB_per_IP": 0.32258,
"SO_per_IP": 0.70968,
"HR_per_IP": 0.03226
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 0.889,
"predicted_H": 2.78,
"predicted_BB": 1.251,
"predicted_SO": 2.417,
"predicted_HR": 0.201,
"predicted_ERA": 2.7559,
"predicted_WHIP": 1.3887
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5362,
"form_weight": 0.4638,
"form_reliability": 0.5593,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.346,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5593,
"prior_weight": 0.4407
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.889,
"final": 2.0209,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.78,
"final": 2.898,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.251,
"final": 2.725,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.417,
"final": 3.2658,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.201,
"final": 0.0932,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7559,
"final": 2.7559,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3887,
"final": 1.3887,
"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": 12.2,
"ER": 1,
"H": 9,
"BB": 5,
"SO": 9,
"HR": 0,
"ERA": 0.7105263157894737,
"WHIP": 1.105263157894737,
"K9": 6.394736842105264,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.8181674503322167,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.346,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5593,
"prior_weight": 0.4407
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687941",
"player_name": "Alec Gamboa",
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 159,
"wins": 85,
"losses": 74,
"win_pct": 0.5346,
"runs_scored": 681.0,
"runs_allowed": 602.0,
"run_differential": 79.0,
"run_differential_per_game": 0.4969,
"avg_runs_scored": 4.283,
"avg_runs_allowed": 3.7862,
"offense_index": 0.9536,
"defense_index": 1.1863,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 2.8,
"run_differential": -6.0
},
"available": true,
"quality_score": 0.0553
},
"opponent": {
"team": "CHC",
"games": 159,
"wins": 88,
"losses": 71,
"win_pct": 0.5535,
"runs_scored": 841.0,
"runs_allowed": 695.0,
"run_differential": 146.0,
"run_differential_per_game": 0.9182,
"avg_runs_scored": 5.2893,
"avg_runs_allowed": 4.3711,
"offense_index": 1.1777,
"defense_index": 1.0275,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.8,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.1579
},
"edges": {
"quality_edge": -0.1026,
"offense_edge": -0.0464,
"opponent_offense_edge": 0.1777,
"defense_strength": 0.1863,
"opponent_defense_weakness": -0.0275,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9944,
"run_prevention": 1.0149,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687941",
"profile": {
"available": true,
"pitcher_id": "687941",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 109.0,
"k_percent": 18.2,
"bb_percent": 8.3,
"woba": 0.269,
"xwoba": 0.26,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 2.3,
"hard_hit_percent": 40.9,
"avg_best_speed": 80.5282,
"avg_hyper_speed": 94.5564,
"whiff_percent": 17.2,
"swing_percent": 51.9
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8963,
"command_and_miss": -0.5943,
"regression_edge": 0.2571,
"xwoba_edge": 1.4571,
"barrel_edge": 1.0889,
"hard_hit_edge": -0.4286,
"whiff_edge": -1.1143,
"bb_edge": 0.2,
"pitch_design_score": 0.1543
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687941",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 14,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 14,
"pitch_usage": 0.0,
"release_speed": 92.61910302178109,
"release_spin_rate": 2102.104436620148,
"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": 14,
"pitch_usage": 0.0,
"release_speed": 92.61910302178109,
"release_spin_rate": 2102.104436620148,
"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.6191,
"release_spin_rate": 2102.1044,
"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.1543,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1022,
"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.1735,
"sample_weight": 0.45,
"run_prevention_factor": 0.9853,
"strikeout_factor": 0.9702,
"walk_factor": 0.9928,
"homer_factor": 0.9488,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687941",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9934,
"adjusted": 0
},
"predicted_H": {
"original": 2.0,
"factor": 0.9934,
"adjusted": 2
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9968,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.977,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9866,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260925_CHC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_CIN@TOR | away | Nick Lodolo | Nick Lodolo | True | 5.0 | 5.0 | 0 | 2 | 2 | 0 | 4/7 | 1/2 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.035369774919614,
"WHIP": 1.4662379421221865,
"IP": 103.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.183,
"recent_avg_IP": 5.733,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.8407,
"sample_weight": 1.0,
"run_prevention_factor": 1.0715,
"strikeout_factor": 0.952,
"walk_factor": 1.008,
"homer_factor": 1.1163,
"regression_flag": "neutral",
"k_percent": 17.3,
"bb_percent": 9.5,
"woba": 0.371,
"xwoba": 0.379,
"barrel_percent": 9.5,
"hard_hit_percent": 40.9,
"whiff_percent": 21.3
},
"espn_rank": {
"rank": 188,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "666157",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 16.0,
"R": 16.0,
"H": 25.0,
"BB": 13.0,
"SO": 21.0,
"HR": 7.0,
"BF": 124.0,
"Pitches": 486.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.2,
"H": 5.0,
"BB": 2.6,
"SO": 4.2,
"HR": 1.4,
"BF": 24.8,
"Pitches": 97.2
},
"rates": {
"ERA": 5.0233,
"WHIP": 1.3256,
"ER_per_IP": 0.55814,
"H_per_IP": 0.87209,
"BB_per_IP": 0.45349,
"SO_per_IP": 0.73256,
"HR_per_IP": 0.24419
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 29.0,
"R": 29.0,
"H": 54.0,
"BB": 22.0,
"SO": 38.0,
"HR": 12.0,
"BF": 231.0,
"Pitches": 895.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 2.9,
"H": 5.4,
"BB": 2.2,
"SO": 3.8,
"HR": 1.2,
"BF": 23.1,
"Pitches": 89.5
},
"rates": {
"ERA": 5.0192,
"WHIP": 1.4615,
"ER_per_IP": 0.55769,
"H_per_IP": 1.03846,
"BB_per_IP": 0.42308,
"SO_per_IP": 0.73077,
"HR_per_IP": 0.23077
}
},
"season": {
"games": 20,
"totals": {
"IP": 103.2,
"ER": 58.0,
"R": 58.0,
"H": 108.0,
"BB": 44.0,
"SO": 80.0,
"HR": 20.0,
"BF": 462.0,
"Pitches": 1807.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 2.9,
"H": 5.4,
"BB": 2.2,
"SO": 4.0,
"HR": 1.0,
"BF": 23.1,
"Pitches": 90.35
},
"rates": {
"ERA": 5.0354,
"WHIP": 1.4662,
"ER_per_IP": 0.55949,
"H_per_IP": 1.0418,
"BB_per_IP": 0.42444,
"SO_per_IP": 0.7717,
"HR_per_IP": 0.19293
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.031,
"predicted_H": 5.345,
"predicted_BB": 2.347,
"predicted_SO": 4.301,
"predicted_HR": 1.177,
"predicted_ERA": 4.9424,
"predicted_WHIP": 1.3934
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.031,
"final": 2.583,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.345,
"final": 4.7606,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.347,
"final": 1.7617,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.301,
"final": 4.6047,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.177,
"final": 1.1001,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9424,
"final": 4.9424,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3934,
"final": 1.3934,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 29,
"H": 54,
"BB": 22,
"SO": 38,
"HR": 12,
"ERA": 5.019230769230769,
"WHIP": 1.4615384615384615,
"K9": 6.576923076923077,
"HR9": 2.076923076923077,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.061942200538829,
"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": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "666157",
"player_name": "Nick Lodolo",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 159,
"wins": 74,
"losses": 85,
"win_pct": 0.4654,
"runs_scored": 655.0,
"runs_allowed": 814.0,
"run_differential": -159.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.1195,
"avg_runs_allowed": 5.1195,
"offense_index": 0.9206,
"defense_index": 0.8741,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 4.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1873
},
"opponent": {
"team": "TOR",
"games": 159,
"wins": 77,
"losses": 82,
"win_pct": 0.4843,
"runs_scored": 636.0,
"runs_allowed": 683.0,
"run_differential": -47.0,
"run_differential_per_game": -0.2956,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.2956,
"offense_index": 0.8939,
"defense_index": 1.0418,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.5,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1197
},
"edges": {
"quality_edge": -0.0676,
"offense_edge": -0.0794,
"opponent_offense_edge": -0.1061,
"defense_strength": -0.1259,
"opponent_defense_weakness": -0.0418,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9978,
"run_prevention": 0.999,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "666157",
"profile": {
"available": true,
"pitcher_id": "666157",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 424.0,
"k_percent": 17.3,
"bb_percent": 9.5,
"woba": 0.371,
"xwoba": 0.379,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 40.9,
"avg_best_speed": 79.3897,
"avg_hyper_speed": 94.6818,
"whiff_percent": 21.3,
"swing_percent": 45.5
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.2235,
"command_and_miss": -0.5071,
"regression_edge": -0.2286,
"xwoba_edge": -1.9429,
"barrel_edge": -0.5111,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.5286,
"bb_edge": -0.1,
"pitch_design_score": -0.01
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666157",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68483136256282,
"release_spin_rate": 2271.767796156934,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68483136256282,
"release_spin_rate": 2271.767796156934,
"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.6848,
"release_spin_rate": 2271.7678,
"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.01,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0715,
"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.8407,
"sample_weight": 1.0,
"run_prevention_factor": 1.0715,
"strikeout_factor": 0.952,
"walk_factor": 1.008,
"homer_factor": 1.1163,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "666157",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0715,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0715,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.008,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1163,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.952,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 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."
}
],
"provenance": {
"prediction": "output/games/20260925_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_CIN@TOR | home | José Soriano | José Soriano | True | 6.0 | 3.0 | -9 | 3 | 5 | 2 | 4/8 | 1/0 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7170172084130018,
"WHIP": 1.2619502868068833,
"IP": 174.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.624,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0113,
"sample_weight": 1.0,
"run_prevention_factor": 0.999,
"strikeout_factor": 1.0269,
"walk_factor": 1.018,
"homer_factor": 1.0058,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 10.0,
"woba": 0.296,
"xwoba": 0.321,
"barrel_percent": 7.3,
"hard_hit_percent": 37.1,
"whiff_percent": 28.8
},
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "667755",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 17.0,
"R": 18.0,
"H": 26.0,
"BB": 8.0,
"SO": 24.0,
"HR": 4.0,
"BF": 126.0,
"Pitches": 451.0
},
"per_game": {
"IP": 6.0,
"ER": 3.4,
"R": 3.6,
"H": 5.2,
"BB": 1.6,
"SO": 4.8,
"HR": 0.8,
"BF": 25.2,
"Pitches": 90.2
},
"rates": {
"ERA": 5.1,
"WHIP": 1.1333,
"ER_per_IP": 0.56667,
"H_per_IP": 0.86667,
"BB_per_IP": 0.26667,
"SO_per_IP": 0.8,
"HR_per_IP": 0.13333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 27.0,
"R": 30.0,
"H": 53.0,
"BB": 19.0,
"SO": 45.0,
"HR": 5.0,
"BF": 238.0,
"Pitches": 911.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7,
"R": 3.0,
"H": 5.3,
"BB": 1.9,
"SO": 4.5,
"HR": 0.5,
"BF": 23.8,
"Pitches": 91.1
},
"rates": {
"ERA": 4.3136,
"WHIP": 1.2781,
"ER_per_IP": 0.47929,
"H_per_IP": 0.94083,
"BB_per_IP": 0.33728,
"SO_per_IP": 0.79882,
"HR_per_IP": 0.08876
}
},
"season": {
"games": 31,
"totals": {
"IP": 174.1,
"ER": 72.0,
"R": 78.0,
"H": 147.0,
"BB": 73.0,
"SO": 167.0,
"HR": 17.0,
"BF": 729.0,
"Pitches": 2868.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3226,
"R": 2.5161,
"H": 4.7419,
"BB": 2.3548,
"SO": 5.3871,
"HR": 0.5484,
"BF": 23.5161,
"Pitches": 92.5161
},
"rates": {
"ERA": 3.717,
"WHIP": 1.262,
"ER_per_IP": 0.413,
"H_per_IP": 0.84321,
"BB_per_IP": 0.41874,
"SO_per_IP": 0.95793,
"HR_per_IP": 0.09751
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.958,
"predicted_H": 5.266,
"predicted_BB": 1.926,
"predicted_SO": 4.941,
"predicted_HR": 0.677,
"predicted_ERA": 4.5575,
"predicted_WHIP": 1.2309
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.958,
"final": 2.9752,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.266,
"final": 4.7486,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.926,
"final": 1.5476,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.941,
"final": 5.3738,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.677,
"final": 0.809,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5575,
"final": 4.5575,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2309,
"final": 1.2309,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 27,
"H": 53,
"BB": 19,
"SO": 45,
"HR": 5,
"ERA": 4.313609467455621,
"WHIP": 1.2781065088757395,
"K9": 7.189349112426036,
"HR9": 0.7988165680473372,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.9779740052725567,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "667755",
"player_name": "Jos\u00e9 Soriano",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 159,
"wins": 77,
"losses": 82,
"win_pct": 0.4843,
"runs_scored": 636.0,
"runs_allowed": 683.0,
"run_differential": -47.0,
"run_differential_per_game": -0.2956,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.2956,
"offense_index": 0.8939,
"defense_index": 1.0418,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.5,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1197
},
"opponent": {
"team": "CIN",
"games": 159,
"wins": 74,
"losses": 85,
"win_pct": 0.4654,
"runs_scored": 655.0,
"runs_allowed": 814.0,
"run_differential": -159.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.1195,
"avg_runs_allowed": 5.1195,
"offense_index": 0.9206,
"defense_index": 0.8741,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 4.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1873
},
"edges": {
"quality_edge": 0.0676,
"offense_edge": -0.1061,
"opponent_offense_edge": -0.0794,
"defense_strength": 0.0418,
"opponent_defense_weakness": 0.1259,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0071,
"run_prevention": 0.9797,
"strikeout": 1.0084
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "667755",
"profile": {
"available": true,
"pitcher_id": "667755",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 700.0,
"k_percent": 22.9,
"bb_percent": 10.0,
"woba": 0.296,
"xwoba": 0.321,
"sweet_spot_percent": 30.4,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.1,
"avg_best_speed": 77.0674,
"avg_hyper_speed": 93.913,
"whiff_percent": 28.8,
"swing_percent": 46.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0314,
"command_and_miss": 0.2029,
"regression_edge": -0.7143,
"xwoba_edge": -0.2857,
"barrel_edge": -0.0222,
"hard_hit_edge": 0.1143,
"whiff_edge": 0.5429,
"bb_edge": -0.225,
"pitch_design_score": 0.1549
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "667755",
"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": 92.6295640052384,
"release_spin_rate": 2055.298636966367,
"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": 92.6295640052384,
"release_spin_rate": 2055.298636966367,
"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.6296,
"release_spin_rate": 2055.2986,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1549,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1064,
"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.0113,
"sample_weight": 1.0,
"run_prevention_factor": 0.999,
"strikeout_factor": 1.0269,
"walk_factor": 1.018,
"homer_factor": 1.0058,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "667755",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.999,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.999,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.018,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0058,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0269,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260925_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_CLE@KC | away | Gavin Williams | Gavin Williams | True | 5.2 | 3.1 | -7 | 3 | 4 | 1 | 3/5 | 0/4 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6298342541436464,
"WHIP": 1.0828729281767955,
"IP": 181.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.839,
"recent_avg_IP": 5.267,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.262,
"sample_weight": 1.0,
"run_prevention_factor": 0.9777,
"strikeout_factor": 1.1126,
"walk_factor": 0.974,
"homer_factor": 1.1135,
"regression_flag": "neutral",
"k_percent": 33.5,
"bb_percent": 7.8,
"woba": 0.289,
"xwoba": 0.299,
"barrel_percent": 11.4,
"hard_hit_percent": 46.5,
"whiff_percent": 33.2
},
"espn_rank": {
"rank": 29,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "668909",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 9.0,
"R": 10.0,
"H": 19.0,
"BB": 9.0,
"SO": 43.0,
"HR": 2.0,
"BF": 107.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 2.0,
"H": 3.8,
"BB": 1.8,
"SO": 8.6,
"HR": 0.4,
"BF": 21.4,
"Pitches": 92.0
},
"rates": {
"ERA": 3.0759,
"WHIP": 1.0633,
"ER_per_IP": 0.34177,
"H_per_IP": 0.72152,
"BB_per_IP": 0.34177,
"SO_per_IP": 1.63291,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 20.0,
"R": 21.0,
"H": 37.0,
"BB": 20.0,
"SO": 88.0,
"HR": 7.0,
"BF": 220.0,
"Pitches": 939.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.1,
"H": 3.7,
"BB": 2.0,
"SO": 8.8,
"HR": 0.7,
"BF": 22.0,
"Pitches": 93.9
},
"rates": {
"ERA": 3.2927,
"WHIP": 1.0427,
"ER_per_IP": 0.36585,
"H_per_IP": 0.67683,
"BB_per_IP": 0.36585,
"SO_per_IP": 1.60976,
"HR_per_IP": 0.12805
}
},
"season": {
"games": 31,
"totals": {
"IP": 181.0,
"ER": 73.0,
"R": 77.0,
"H": 139.0,
"BB": 57.0,
"SO": 244.0,
"HR": 27.0,
"BF": 728.0,
"Pitches": 2917.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3548,
"R": 2.4839,
"H": 4.4839,
"BB": 1.8387,
"SO": 7.871,
"HR": 0.871,
"BF": 23.4839,
"Pitches": 94.0968
},
"rates": {
"ERA": 3.6298,
"WHIP": 1.0829,
"ER_per_IP": 0.40331,
"H_per_IP": 0.76796,
"BB_per_IP": 0.31492,
"SO_per_IP": 1.34807,
"HR_per_IP": 0.14917
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.106,
"predicted_H": 4.135,
"predicted_BB": 1.92,
"predicted_SO": 8.133,
"predicted_HR": 0.629,
"predicted_ERA": 3.4504,
"predicted_WHIP": 1.102
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.106,
"final": 2.4714,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.135,
"final": 3.6711,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.92,
"final": 1.1353,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 8.133,
"final": 6.8526,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.629,
"final": 0.7806,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4504,
"final": 3.4504,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.102,
"final": 1.102,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 20,
"H": 37,
"BB": 20,
"SO": 88,
"HR": 7,
"ERA": 3.2926829268292686,
"WHIP": 1.0426829268292683,
"K9": 14.487804878048781,
"HR9": 1.152439024390244,
"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-20T00:00:00"
},
"recent_form_boost": 0.8572341799009302,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "668909",
"player_name": "Gavin Williams",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"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": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"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": "CLE",
"games": 159,
"wins": 83,
"losses": 76,
"win_pct": 0.522,
"runs_scored": 653.0,
"runs_allowed": 650.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0189,
"avg_runs_scored": 4.1069,
"avg_runs_allowed": 4.0881,
"offense_index": 0.9183,
"defense_index": 1.094,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.0,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.126
},
"opponent": {
"team": "KC",
"games": 159,
"wins": 68,
"losses": 91,
"win_pct": 0.4277,
"runs_scored": 673.0,
"runs_allowed": 785.0,
"run_differential": -112.0,
"run_differential_per_game": -0.7044,
"avg_runs_scored": 4.2327,
"avg_runs_allowed": 4.9371,
"offense_index": 0.9464,
"defense_index": 0.9059,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.1,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.2531
},
"edges": {
"quality_edge": 0.3791,
"offense_edge": -0.0817,
"opponent_offense_edge": -0.0536,
"defense_strength": 0.094,
"opponent_defense_weakness": 0.0941,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0201,
"run_prevention": 0.9631,
"strikeout": 1.0157
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668909",
"profile": {
"available": true,
"pitcher_id": "668909",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 700.0,
"k_percent": 33.5,
"bb_percent": 7.8,
"woba": 0.289,
"xwoba": 0.299,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 11.4,
"hard_hit_percent": 46.5,
"avg_best_speed": 79.1714,
"avg_hyper_speed": 94.9438,
"whiff_percent": 33.2,
"swing_percent": 49.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0538,
"command_and_miss": 1.2143,
"regression_edge": -0.2857,
"xwoba_edge": 0.3429,
"barrel_edge": -0.9333,
"hard_hit_edge": -1.2286,
"whiff_edge": 1.1714,
"bb_edge": 0.325,
"pitch_design_score": 0.0624
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "668909",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.97845935651245,
"release_spin_rate": 2292.19753528252,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.97845935651245,
"release_spin_rate": 2292.19753528252,
"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.9785,
"release_spin_rate": 2292.1975,
"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.0624,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4459,
"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.262,
"sample_weight": 1.0,
"run_prevention_factor": 0.9777,
"strikeout_factor": 1.1126,
"walk_factor": 0.974,
"homer_factor": 1.1135,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "668909",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9777,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9777,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1135,
"adjusted": 1
},
"predicted_SO": {
"original": 9.0,
"factor": 1.1126,
"adjusted": 10
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"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 -7 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260925_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_CLE@KC | home | Noah Cameron | Noah Cameron | True | 5.2 | 5.0 | -2 | 2 | 6 | 4 | 5/7 | 3/4 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9168278529980656,
"WHIP": 1.2011605415860733,
"IP": 172.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.701,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0091,
"sample_weight": 1.0,
"run_prevention_factor": 1.0008,
"strikeout_factor": 1.0051,
"walk_factor": 0.968,
"homer_factor": 1.0158,
"regression_flag": "neutral",
"k_percent": 21.6,
"bb_percent": 7.5,
"woba": 0.3,
"xwoba": 0.31,
"barrel_percent": 8.2,
"hard_hit_percent": 37.7,
"whiff_percent": 26.3
},
"espn_rank": {
"rank": 65,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "702070",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 11.0,
"R": 11.0,
"H": 25.0,
"BB": 8.0,
"SO": 27.0,
"HR": 5.0,
"BF": 118.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 5.0,
"BB": 1.6,
"SO": 5.4,
"HR": 1.0,
"BF": 23.6,
"Pitches": 89.0
},
"rates": {
"ERA": 3.4138,
"WHIP": 1.1379,
"ER_per_IP": 0.37931,
"H_per_IP": 0.86207,
"BB_per_IP": 0.27586,
"SO_per_IP": 0.93103,
"HR_per_IP": 0.17241
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 64.2,
"ER": 16.0,
"R": 16.0,
"H": 38.0,
"BB": 17.0,
"SO": 55.0,
"HR": 5.0,
"BF": 245.0,
"Pitches": 949.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 3.8,
"BB": 1.7,
"SO": 5.5,
"HR": 0.5,
"BF": 24.5,
"Pitches": 94.9
},
"rates": {
"ERA": 2.2268,
"WHIP": 0.8505,
"ER_per_IP": 0.24742,
"H_per_IP": 0.58763,
"BB_per_IP": 0.26289,
"SO_per_IP": 0.85052,
"HR_per_IP": 0.07732
}
},
"season": {
"games": 30,
"totals": {
"IP": 172.1,
"ER": 75.0,
"R": 80.0,
"H": 153.0,
"BB": 54.0,
"SO": 155.0,
"HR": 19.0,
"BF": 718.0,
"Pitches": 2792.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.6667,
"H": 5.1,
"BB": 1.8,
"SO": 5.1667,
"HR": 0.6333,
"BF": 23.9333,
"Pitches": 93.0667
},
"rates": {
"ERA": 3.9168,
"WHIP": 1.2012,
"ER_per_IP": 0.4352,
"H_per_IP": 0.88781,
"BB_per_IP": 0.31335,
"SO_per_IP": 0.89942,
"HR_per_IP": 0.11025
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.161,
"predicted_H": 4.703,
"predicted_BB": 1.719,
"predicted_SO": 5.293,
"predicted_HR": 0.762,
"predicted_ERA": 3.3156,
"predicted_WHIP": 1.0946
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.161,
"final": 2.0949,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.703,
"final": 4.8249,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.719,
"final": 2.2447,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.293,
"final": 5.5831,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.762,
"final": 0.8597,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3156,
"final": 3.3156,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0946,
"final": 1.0946,
"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": 16,
"H": 38,
"BB": 17,
"SO": 55,
"HR": 5,
"ERA": 2.22680412371134,
"WHIP": 0.8505154639175257,
"K9": 7.654639175257731,
"HR9": 0.6958762886597938,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.7325186279773697,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702070",
"player_name": "Noah Cameron",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 159,
"wins": 68,
"losses": 91,
"win_pct": 0.4277,
"runs_scored": 673.0,
"runs_allowed": 785.0,
"run_differential": -112.0,
"run_differential_per_game": -0.7044,
"avg_runs_scored": 4.2327,
"avg_runs_allowed": 4.9371,
"offense_index": 0.9464,
"defense_index": 0.9059,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.1,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.2531
},
"opponent": {
"team": "CLE",
"games": 159,
"wins": 83,
"losses": 76,
"win_pct": 0.522,
"runs_scored": 653.0,
"runs_allowed": 650.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0189,
"avg_runs_scored": 4.1069,
"avg_runs_allowed": 4.0881,
"offense_index": 0.9183,
"defense_index": 1.094,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.0,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.126
},
"edges": {
"quality_edge": -0.3791,
"offense_edge": -0.0536,
"opponent_offense_edge": -0.0817,
"defense_strength": -0.0941,
"opponent_defense_weakness": -0.094,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.9853,
"run_prevention": 1.0153,
"strikeout": 0.9952
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702070",
"profile": {
"available": true,
"pitcher_id": "702070",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 687.0,
"k_percent": 21.6,
"bb_percent": 7.5,
"woba": 0.3,
"xwoba": 0.31,
"sweet_spot_percent": 36.9,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.871,
"avg_hyper_speed": 93.9779,
"whiff_percent": 26.3,
"swing_percent": 48.5
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0039,
"command_and_miss": 0.1193,
"regression_edge": -0.2857,
"xwoba_edge": 0.0286,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.0286,
"whiff_edge": 0.1857,
"bb_edge": 0.4,
"pitch_design_score": -0.1714
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702070",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 86.80222764841449,
"release_spin_rate": 2194.1160947580797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 86.80222764841449,
"release_spin_rate": 2194.1160947580797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.8022,
"release_spin_rate": 2194.1161,
"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.1714,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2246,
"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.0091,
"sample_weight": 1.0,
"run_prevention_factor": 1.0008,
"strikeout_factor": 1.0051,
"walk_factor": 0.968,
"homer_factor": 1.0158,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "702070",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0008,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0008,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0158,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0051,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
}
],
"provenance": {
"prediction": "output/games/20260925_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_COL@CHW | away | Tomoyuki Sugano | Tomoyuki Sugano | True | 5.0 | 6.2 | 5 | 6 | 4 | -2 | 6/6 | 2/0 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.363431151241535,
"WHIP": 1.3340857787810385,
"IP": 147.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.274,
"recent_avg_IP": 5.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.9839,
"sample_weight": 1.0,
"run_prevention_factor": 1.0836,
"strikeout_factor": 0.9229,
"walk_factor": 0.932,
"homer_factor": 1.1749,
"regression_flag": "neutral",
"k_percent": 14.4,
"bb_percent": 5.7,
"woba": 0.358,
"xwoba": 0.381,
"barrel_percent": 11.8,
"hard_hit_percent": 43.7,
"whiff_percent": 19.1
},
"espn_rank": {
"rank": 110,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608372",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 21.0,
"R": 21.0,
"H": 29.0,
"BB": 8.0,
"SO": 20.0,
"HR": 5.0,
"BF": 115.0,
"Pitches": 440.0
},
"per_game": {
"IP": 5.1,
"ER": 4.2,
"R": 4.2,
"H": 5.8,
"BB": 1.6,
"SO": 4.0,
"HR": 1.0,
"BF": 23.0,
"Pitches": 88.0
},
"rates": {
"ERA": 7.2692,
"WHIP": 1.4231,
"ER_per_IP": 0.80769,
"H_per_IP": 1.11538,
"BB_per_IP": 0.30769,
"SO_per_IP": 0.76923,
"HR_per_IP": 0.19231
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 38.0,
"R": 39.0,
"H": 61.0,
"BB": 12.0,
"SO": 35.0,
"HR": 11.0,
"BF": 226.0,
"Pitches": 882.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8,
"R": 3.9,
"H": 6.1,
"BB": 1.2,
"SO": 3.5,
"HR": 1.1,
"BF": 22.6,
"Pitches": 88.2
},
"rates": {
"ERA": 6.6194,
"WHIP": 1.4129,
"ER_per_IP": 0.73548,
"H_per_IP": 1.18065,
"BB_per_IP": 0.23226,
"SO_per_IP": 0.67742,
"HR_per_IP": 0.2129
}
},
"season": {
"games": 28,
"totals": {
"IP": 147.2,
"ER": 88.0,
"R": 91.0,
"H": 161.0,
"BB": 36.0,
"SO": 91.0,
"HR": 31.0,
"BF": 631.0,
"Pitches": 2432.0
},
"per_game": {
"IP": 5.1,
"ER": 3.1429,
"R": 3.25,
"H": 5.75,
"BB": 1.2857,
"SO": 3.25,
"HR": 1.1071,
"BF": 22.5357,
"Pitches": 86.8571
},
"rates": {
"ERA": 5.3634,
"WHIP": 1.3341,
"ER_per_IP": 0.59594,
"H_per_IP": 1.09029,
"BB_per_IP": 0.24379,
"SO_per_IP": 0.61625,
"HR_per_IP": 0.20993
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.763,
"predicted_H": 5.923,
"predicted_BB": 1.52,
"predicted_SO": 3.954,
"predicted_HR": 1.039,
"predicted_ERA": 6.3507,
"predicted_WHIP": 1.3957
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 7.0,
"form": 3.763,
"final": 5.1031,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.923,
"final": 5.9549,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.52,
"final": 1.7187,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.954,
"final": 3.559,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.039,
"final": 1.4369,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.3507,
"final": 6.3507,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3957,
"final": 1.3957,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 38,
"H": 61,
"BB": 12,
"SO": 35,
"HR": 11,
"ERA": 6.619354838709678,
"WHIP": 1.4129032258064518,
"K9": 6.096774193548387,
"HR9": 1.9161290322580646,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.2407402774619058,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 7.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 7,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608372",
"player_name": "Tomoyuki Sugano",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 7.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 7.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 7.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 7.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 159,
"wins": 57,
"losses": 102,
"win_pct": 0.3585,
"runs_scored": 740.0,
"runs_allowed": 928.0,
"run_differential": -188.0,
"run_differential_per_game": -1.1824,
"avg_runs_scored": 4.6541,
"avg_runs_allowed": 5.8365,
"offense_index": 1.0406,
"defense_index": 0.7663,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 6.3,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.3707
},
"opponent": {
"team": "CHW",
"games": 159,
"wins": 82,
"losses": 77,
"win_pct": 0.5157,
"runs_scored": 760.0,
"runs_allowed": 708.0,
"run_differential": 52.0,
"run_differential_per_game": 0.327,
"avg_runs_scored": 4.7799,
"avg_runs_allowed": 4.4528,
"offense_index": 1.0688,
"defense_index": 1.0044,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 4.7,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.0886
},
"edges": {
"quality_edge": -0.4593,
"offense_edge": 0.0406,
"opponent_offense_edge": 0.0688,
"defense_strength": -0.2337,
"opponent_defense_weakness": -0.0044,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9719,
"run_prevention": 1.0573,
"strikeout": 0.9807
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608372",
"profile": {
"available": true,
"pitcher_id": "608372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 602.0,
"k_percent": 14.4,
"bb_percent": 5.7,
"woba": 0.358,
"xwoba": 0.381,
"sweet_spot_percent": 37.3,
"barrel_batted_rate": 11.8,
"hard_hit_percent": 43.7,
"avg_best_speed": 80.9925,
"avg_hyper_speed": 95.1097,
"whiff_percent": 19.1,
"swing_percent": 47.3
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.3423,
"command_and_miss": -0.6136,
"regression_edge": -0.6571,
"xwoba_edge": -2.0,
"barrel_edge": -1.0222,
"hard_hit_edge": -0.8286,
"whiff_edge": -0.8429,
"bb_edge": 0.85,
"pitch_design_score": -0.0871
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608372",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.30861213850356,
"release_spin_rate": 2300.4901092326763,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.30861213850356,
"release_spin_rate": 2300.4901092326763,
"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.3086,
"release_spin_rate": 2300.4901,
"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.0871,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.622,
"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.9839,
"sample_weight": 1.0,
"run_prevention_factor": 1.0836,
"strikeout_factor": 0.9229,
"walk_factor": 0.932,
"homer_factor": 1.1749,
"woba_minus_xwoba": -0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608372",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0836,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0836,
"adjusted": 7
},
"predicted_BB": {
"original": 2.0,
"factor": 0.932,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1749,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9229,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 7,
"predicted_ER": 7,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260925_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_COL@CHW | home | Sean Burke | Sean Burke | True | 5.0 | 5.1 | 1 | 1 | 1 | 0 | 4/4 | 0/1 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.395209580838323,
"WHIP": 1.2035928143712575,
"IP": 167.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.269,
"recent_avg_IP": 4.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0861,
"sample_weight": 1.0,
"run_prevention_factor": 0.9927,
"strikeout_factor": 1.0229,
"walk_factor": 0.994,
"homer_factor": 1.0154,
"regression_flag": "neutral",
"k_percent": 25.6,
"bb_percent": 8.8,
"woba": 0.303,
"xwoba": 0.303,
"barrel_percent": 8.1,
"hard_hit_percent": 39.0,
"whiff_percent": 25.4
},
"espn_rank": {
"rank": 19,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680732",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 10.0,
"R": 11.0,
"H": 20.0,
"BB": 19.0,
"SO": 20.0,
"HR": 1.0,
"BF": 99.0,
"Pitches": 435.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.2,
"H": 4.0,
"BB": 3.8,
"SO": 4.0,
"HR": 0.2,
"BF": 19.8,
"Pitches": 87.0
},
"rates": {
"ERA": 4.2857,
"WHIP": 1.8571,
"ER_per_IP": 0.47619,
"H_per_IP": 0.95238,
"BB_per_IP": 0.90476,
"SO_per_IP": 0.95238,
"HR_per_IP": 0.04762
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 21.0,
"R": 22.0,
"H": 43.0,
"BB": 26.0,
"SO": 48.0,
"HR": 5.0,
"BF": 213.0,
"Pitches": 881.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.2,
"H": 4.3,
"BB": 2.6,
"SO": 4.8,
"HR": 0.5,
"BF": 21.3,
"Pitches": 88.1
},
"rates": {
"ERA": 3.8836,
"WHIP": 1.4178,
"ER_per_IP": 0.43151,
"H_per_IP": 0.88356,
"BB_per_IP": 0.53425,
"SO_per_IP": 0.9863,
"HR_per_IP": 0.10274
}
},
"season": {
"games": 31,
"totals": {
"IP": 167.0,
"ER": 63.0,
"R": 66.0,
"H": 140.0,
"BB": 61.0,
"SO": 178.0,
"HR": 18.0,
"BF": 695.0,
"Pitches": 2789.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0323,
"R": 2.129,
"H": 4.5161,
"BB": 1.9677,
"SO": 5.7419,
"HR": 0.5806,
"BF": 22.4194,
"Pitches": 89.9677
},
"rates": {
"ERA": 3.3952,
"WHIP": 1.2036,
"ER_per_IP": 0.37725,
"H_per_IP": 0.83832,
"BB_per_IP": 0.36527,
"SO_per_IP": 1.06587,
"HR_per_IP": 0.10778
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.163,
"predicted_H": 4.398,
"predicted_BB": 3.009,
"predicted_SO": 4.703,
"predicted_HR": 0.426,
"predicted_ERA": 4.0569,
"predicted_WHIP": 1.5434
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.163,
"final": 1.6877,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.398,
"final": 4.2353,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 3.009,
"final": 1.7793,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.703,
"final": 4.8244,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.426,
"final": 0.2519,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0569,
"final": 4.0569,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5434,
"final": 1.5434,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.2,
"ER": 21,
"H": 43,
"BB": 26,
"SO": 48,
"HR": 5,
"ERA": 3.8835616438356166,
"WHIP": 1.4178082191780823,
"K9": 8.876712328767123,
"HR9": 0.9246575342465754,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.9330861678728648,
"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": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680732",
"player_name": "Sean Burke",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 159,
"wins": 82,
"losses": 77,
"win_pct": 0.5157,
"runs_scored": 760.0,
"runs_allowed": 708.0,
"run_differential": 52.0,
"run_differential_per_game": 0.327,
"avg_runs_scored": 4.7799,
"avg_runs_allowed": 4.4528,
"offense_index": 1.0688,
"defense_index": 1.0044,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 4.7,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.0886
},
"opponent": {
"team": "COL",
"games": 159,
"wins": 57,
"losses": 102,
"win_pct": 0.3585,
"runs_scored": 740.0,
"runs_allowed": 928.0,
"run_differential": -188.0,
"run_differential_per_game": -1.1824,
"avg_runs_scored": 4.6541,
"avg_runs_allowed": 5.8365,
"offense_index": 1.0406,
"defense_index": 0.7663,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 6.3,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.3707
},
"edges": {
"quality_edge": 0.4593,
"offense_edge": 0.0688,
"opponent_offense_edge": 0.0406,
"defense_strength": 0.0044,
"opponent_defense_weakness": 0.2337,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0169,
"run_prevention": 0.9831,
"strikeout": 1.0105
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 644.0,
"k_percent": 25.6,
"bb_percent": 8.8,
"woba": 0.303,
"xwoba": 0.303,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 39.0,
"avg_best_speed": 79.5292,
"avg_hyper_speed": 94.0009,
"whiff_percent": 25.4,
"swing_percent": 48.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0319,
"command_and_miss": 0.2664,
"regression_edge": 0.0,
"xwoba_edge": 0.2286,
"barrel_edge": -0.2,
"hard_hit_edge": -0.1571,
"whiff_edge": 0.0571,
"bb_edge": 0.075,
"pitch_design_score": -0.0129
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680732",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.63367275202977,
"release_spin_rate": 2515.4651388536104,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.63367275202977,
"release_spin_rate": 2515.4651388536104,
"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.6337,
"release_spin_rate": 2515.4651,
"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.0129,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.092,
"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.0861,
"sample_weight": 1.0,
"run_prevention_factor": 0.9927,
"strikeout_factor": 1.0229,
"walk_factor": 0.994,
"homer_factor": 1.0154,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680732",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9927,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9927,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 0.994,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0154,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0229,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260925_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_HOU@OAK | away | Hunter Brown | Hunter Brown | True | 5.1 | 5.1 | 0 | 3 | 1 | -2 | 5/2 | 0/4 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.264705882352941,
"WHIP": 1.2745098039215685,
"IP": 102.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.368,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5186,
"sample_weight": 1.0,
"run_prevention_factor": 0.9559,
"strikeout_factor": 1.0474,
"walk_factor": 1.056,
"homer_factor": 0.9478,
"regression_flag": "neutral",
"k_percent": 28.1,
"bb_percent": 11.9,
"woba": 0.294,
"xwoba": 0.279,
"barrel_percent": 6.0,
"hard_hit_percent": 37.3,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 69,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686613",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 8.0,
"R": 9.0,
"H": 23.0,
"BB": 8.0,
"SO": 44.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 482.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.8,
"H": 4.6,
"BB": 1.6,
"SO": 8.8,
"HR": 0.2,
"BF": 22.4,
"Pitches": 96.4
},
"rates": {
"ERA": 2.6024,
"WHIP": 1.1205,
"ER_per_IP": 0.28916,
"H_per_IP": 0.83133,
"BB_per_IP": 0.28916,
"SO_per_IP": 1.59036,
"HR_per_IP": 0.03614
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 19.0,
"R": 20.0,
"H": 47.0,
"BB": 23.0,
"SO": 70.0,
"HR": 6.0,
"BF": 227.0,
"Pitches": 959.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9,
"R": 2.0,
"H": 4.7,
"BB": 2.3,
"SO": 7.0,
"HR": 0.6,
"BF": 22.7,
"Pitches": 95.9
},
"rates": {
"ERA": 3.1091,
"WHIP": 1.2727,
"ER_per_IP": 0.34545,
"H_per_IP": 0.85455,
"BB_per_IP": 0.41818,
"SO_per_IP": 1.27273,
"HR_per_IP": 0.10909
}
},
"season": {
"games": 19,
"totals": {
"IP": 102.0,
"ER": 37.0,
"R": 40.0,
"H": 79.0,
"BB": 51.0,
"SO": 120.0,
"HR": 11.0,
"BF": 427.0,
"Pitches": 1781.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9474,
"R": 2.1053,
"H": 4.1579,
"BB": 2.6842,
"SO": 6.3158,
"HR": 0.5789,
"BF": 22.4737,
"Pitches": 93.7368
},
"rates": {
"ERA": 3.2647,
"WHIP": 1.2745,
"ER_per_IP": 0.36275,
"H_per_IP": 0.77451,
"BB_per_IP": 0.5,
"SO_per_IP": 1.17647,
"HR_per_IP": 0.10784
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.979,
"predicted_H": 4.692,
"predicted_BB": 2.054,
"predicted_SO": 7.091,
"predicted_HR": 0.497,
"predicted_ERA": 3.2669,
"predicted_WHIP": 1.2374
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.979,
"final": 2.4262,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.692,
"final": 4.8269,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.054,
"final": 1.1543,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.091,
"final": 6.6131,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.497,
"final": 0.7173,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2669,
"final": 3.2669,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2374,
"final": 1.2374,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.0,
"ER": 19,
"H": 47,
"BB": 23,
"SO": 70,
"HR": 6,
"ERA": 3.109090909090909,
"WHIP": 1.2727272727272727,
"K9": 11.454545454545455,
"HR9": 0.9818181818181818,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.8423311865528149,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686613",
"player_name": "Hunter Brown",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 159,
"wins": 79,
"losses": 80,
"win_pct": 0.4969,
"runs_scored": 707.0,
"runs_allowed": 758.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3208,
"avg_runs_scored": 4.4465,
"avg_runs_allowed": 4.7673,
"offense_index": 0.9932,
"defense_index": 0.9391,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.0,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.077
},
"opponent": {
"team": "OAK",
"games": 159,
"wins": 63,
"losses": 96,
"win_pct": 0.3962,
"runs_scored": 691.0,
"runs_allowed": 910.0,
"run_differential": -219.0,
"run_differential_per_game": -1.3774,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 5.7233,
"offense_index": 0.9708,
"defense_index": 0.7822,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.8,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.3275
},
"edges": {
"quality_edge": 0.2505,
"offense_edge": -0.0068,
"opponent_offense_edge": -0.0292,
"defense_strength": -0.0609,
"opponent_defense_weakness": 0.2178,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0094,
"run_prevention": 0.9889,
"strikeout": 1.0099
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686613",
"profile": {
"available": true,
"pitcher_id": "686613",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 386.0,
"k_percent": 28.1,
"bb_percent": 11.9,
"woba": 0.294,
"xwoba": 0.279,
"sweet_spot_percent": 27.4,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 37.3,
"avg_best_speed": 74.0205,
"avg_hyper_speed": 93.2519,
"whiff_percent": 27.2,
"swing_percent": 42.5
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6617,
"command_and_miss": 0.3621,
"regression_edge": 0.4286,
"xwoba_edge": 0.9143,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.0857,
"whiff_edge": 0.3143,
"bb_edge": -0.7,
"pitch_design_score": 0.1385
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686613",
"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": 92.33714491013515,
"release_spin_rate": 2193.36097163242,
"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": 92.33714491013515,
"release_spin_rate": 2193.36097163242,
"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.3371,
"release_spin_rate": 2193.361,
"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.1385,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9894,
"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.5186,
"sample_weight": 1.0,
"run_prevention_factor": 0.9559,
"strikeout_factor": 1.0474,
"walk_factor": 1.056,
"homer_factor": 0.9478,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "686613",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9559,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9559,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.056,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9478,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0474,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260925_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_HOU@OAK | home | Jacob Lopez | Jacob Lopez | True | 4.1 | 6.0 | 5 | 3 | 1 | -2 | 5/2 | 0/2 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.676136363636364,
"WHIP": 1.5340909090909092,
"IP": 117.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.725,
"recent_avg_IP": 4.667,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2022,
"sample_weight": 1.0,
"run_prevention_factor": 0.9828,
"strikeout_factor": 0.9863,
"walk_factor": 1.03,
"homer_factor": 0.9428,
"regression_flag": "positive_pitcher_regression",
"k_percent": 20.4,
"bb_percent": 10.6,
"woba": 0.354,
"xwoba": 0.296,
"barrel_percent": 6.6,
"hard_hit_percent": 32.0,
"whiff_percent": 24.2
},
"espn_rank": {
"rank": 352,
"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": "682052",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 22.0,
"R": 23.0,
"H": 32.0,
"BB": 9.0,
"SO": 18.0,
"HR": 7.0,
"BF": 110.0,
"Pitches": 460.0
},
"per_game": {
"IP": 4.2,
"ER": 4.4,
"R": 4.6,
"H": 6.4,
"BB": 1.8,
"SO": 3.6,
"HR": 1.4,
"BF": 22.0,
"Pitches": 92.0
},
"rates": {
"ERA": 8.4857,
"WHIP": 1.7571,
"ER_per_IP": 0.94286,
"H_per_IP": 1.37143,
"BB_per_IP": 0.38571,
"SO_per_IP": 0.77143,
"HR_per_IP": 0.3
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 30.0,
"R": 32.0,
"H": 56.0,
"BB": 16.0,
"SO": 55.0,
"HR": 11.0,
"BF": 227.0,
"Pitches": 921.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.2,
"H": 5.6,
"BB": 1.6,
"SO": 5.5,
"HR": 1.1,
"BF": 22.7,
"Pitches": 92.1
},
"rates": {
"ERA": 5.1266,
"WHIP": 1.3671,
"ER_per_IP": 0.56962,
"H_per_IP": 1.06329,
"BB_per_IP": 0.3038,
"SO_per_IP": 1.0443,
"HR_per_IP": 0.20886
}
},
"season": {
"games": 26,
"totals": {
"IP": 117.1,
"ER": 74.0,
"R": 77.0,
"H": 124.0,
"BB": 56.0,
"SO": 108.0,
"HR": 22.0,
"BF": 529.0,
"Pitches": 2149.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8462,
"R": 2.9615,
"H": 4.7692,
"BB": 2.1538,
"SO": 4.1538,
"HR": 0.8462,
"BF": 20.3462,
"Pitches": 82.6538
},
"rates": {
"ERA": 5.6761,
"WHIP": 1.5341,
"ER_per_IP": 0.63068,
"H_per_IP": 1.05682,
"BB_per_IP": 0.47727,
"SO_per_IP": 0.92045,
"HR_per_IP": 0.1875
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.46,
"predicted_H": 5.668,
"predicted_BB": 1.827,
"predicted_SO": 4.392,
"predicted_HR": 1.118,
"predicted_ERA": 6.404,
"predicted_WHIP": 1.5415
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.46,
"final": 2.8495,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.668,
"final": 4.5524,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.827,
"final": 1.063,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.392,
"final": 5.4825,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.118,
"final": 1.0687,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.404,
"final": 6.404,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5415,
"final": 1.5415,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.2,
"ER": 30,
"H": 56,
"BB": 16,
"SO": 55,
"HR": 11,
"ERA": 5.126582278481013,
"WHIP": 1.3670886075949367,
"K9": 9.398734177215191,
"HR9": 1.879746835443038,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.0716579989808932,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 0.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682052",
"player_name": "Jacob Lopez",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 159,
"wins": 63,
"losses": 96,
"win_pct": 0.3962,
"runs_scored": 691.0,
"runs_allowed": 910.0,
"run_differential": -219.0,
"run_differential_per_game": -1.3774,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 5.7233,
"offense_index": 0.9708,
"defense_index": 0.7822,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.8,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.3275
},
"opponent": {
"team": "HOU",
"games": 159,
"wins": 79,
"losses": 80,
"win_pct": 0.4969,
"runs_scored": 707.0,
"runs_allowed": 758.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3208,
"avg_runs_scored": 4.4465,
"avg_runs_allowed": 4.7673,
"offense_index": 0.9932,
"defense_index": 0.9391,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.0,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.077
},
"edges": {
"quality_edge": -0.2505,
"offense_edge": -0.0292,
"opponent_offense_edge": -0.0068,
"defense_strength": -0.2178,
"opponent_defense_weakness": 0.0609,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9837,
"run_prevention": 1.0332,
"strikeout": 0.993
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682052",
"profile": {
"available": true,
"pitcher_id": "682052",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 505.0,
"k_percent": 20.4,
"bb_percent": 10.6,
"woba": 0.354,
"xwoba": 0.296,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 32.0,
"avg_best_speed": 71.9236,
"avg_hyper_speed": 92.6061,
"whiff_percent": 24.2,
"swing_percent": 46.1
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2063,
"command_and_miss": -0.2179,
"regression_edge": 1.6571,
"xwoba_edge": 0.4286,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.8429,
"whiff_edge": -0.1143,
"bb_edge": -0.375,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682052",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 84.00032129257265,
"release_spin_rate": 2262.419878494836,
"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": 84.00032129257265,
"release_spin_rate": 2262.419878494836,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.0003,
"release_spin_rate": 2262.4199,
"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.2022,
"sample_weight": 1.0,
"run_prevention_factor": 0.9828,
"strikeout_factor": 0.9863,
"walk_factor": 1.03,
"homer_factor": 0.9428,
"woba_minus_xwoba": 0.058,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "682052",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9828,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9828,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.03,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9428,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9863,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 70,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260925_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_LAA@SEA | away | Reid Detmers | Reid Detmers | True | 6.0 | 6.0 | 0 | 3 | 0 | -3 | 4/2 | 4/2 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.46927374301676,
"WHIP": 1.0502793296089385,
"IP": 179.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.774,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4617,
"sample_weight": 1.0,
"run_prevention_factor": 0.9608,
"strikeout_factor": 1.0589,
"walk_factor": 0.946,
"homer_factor": 0.9797,
"regression_flag": "neutral",
"k_percent": 28.4,
"bb_percent": 6.4,
"woba": 0.273,
"xwoba": 0.279,
"barrel_percent": 7.6,
"hard_hit_percent": 37.9,
"whiff_percent": 28.9
},
"espn_rank": {
"rank": 20,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "672282",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 9.0,
"R": 9.0,
"H": 28.0,
"BB": 2.0,
"SO": 32.0,
"HR": 2.0,
"BF": 115.0,
"Pitches": 473.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 5.6,
"BB": 0.4,
"SO": 6.4,
"HR": 0.4,
"BF": 23.0,
"Pitches": 94.6
},
"rates": {
"ERA": 2.7,
"WHIP": 1.0,
"ER_per_IP": 0.3,
"H_per_IP": 0.93333,
"BB_per_IP": 0.06667,
"SO_per_IP": 1.06667,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 15.0,
"R": 15.0,
"H": 47.0,
"BB": 9.0,
"SO": 68.0,
"HR": 6.0,
"BF": 225.0,
"Pitches": 907.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.5,
"H": 4.7,
"BB": 0.9,
"SO": 6.8,
"HR": 0.6,
"BF": 22.5,
"Pitches": 90.7
},
"rates": {
"ERA": 2.2881,
"WHIP": 0.9492,
"ER_per_IP": 0.25424,
"H_per_IP": 0.79661,
"BB_per_IP": 0.15254,
"SO_per_IP": 1.15254,
"HR_per_IP": 0.10169
}
},
"season": {
"games": 31,
"totals": {
"IP": 179.0,
"ER": 69.0,
"R": 72.0,
"H": 142.0,
"BB": 46.0,
"SO": 204.0,
"HR": 19.0,
"BF": 718.0,
"Pitches": 2872.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2258,
"R": 2.3226,
"H": 4.5806,
"BB": 1.4839,
"SO": 6.5806,
"HR": 0.6129,
"BF": 23.1613,
"Pitches": 92.6452
},
"rates": {
"ERA": 3.4693,
"WHIP": 1.0503,
"ER_per_IP": 0.38547,
"H_per_IP": 0.7933,
"BB_per_IP": 0.25698,
"SO_per_IP": 1.13966,
"HR_per_IP": 0.10615
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.964,
"predicted_H": 5.2,
"predicted_BB": 1.002,
"predicted_SO": 6.46,
"predicted_HR": 0.567,
"predicted_ERA": 2.9744,
"predicted_WHIP": 1.0436
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.964,
"final": 2.3874,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.2,
"final": 4.7096,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.002,
"final": 2.2272,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.46,
"final": 5.0459,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.567,
"final": 0.3353,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9744,
"final": 2.9744,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0436,
"final": 1.0436,
"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": 15,
"H": 47,
"BB": 9,
"SO": 68,
"HR": 6,
"ERA": 2.288135593220339,
"WHIP": 0.9491525423728814,
"K9": 10.372881355932204,
"HR9": 0.9152542372881356,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.741884345258516,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "672282",
"player_name": "Reid Detmers",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 159,
"wins": 61,
"losses": 98,
"win_pct": 0.3836,
"runs_scored": 641.0,
"runs_allowed": 732.0,
"run_differential": -91.0,
"run_differential_per_game": -0.5723,
"avg_runs_scored": 4.0314,
"avg_runs_allowed": 4.6038,
"offense_index": 0.9005,
"defense_index": 0.9724,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.2,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1693
},
"opponent": {
"team": "SEA",
"games": 159,
"wins": 74,
"losses": 85,
"win_pct": 0.4654,
"runs_scored": 644.0,
"runs_allowed": 708.0,
"run_differential": -64.0,
"run_differential_per_game": -0.4025,
"avg_runs_scored": 4.0503,
"avg_runs_allowed": 4.4528,
"offense_index": 0.9047,
"defense_index": 1.0054,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.6,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.1139
},
"edges": {
"quality_edge": -0.0554,
"offense_edge": -0.0995,
"opponent_offense_edge": -0.0953,
"defense_strength": -0.0276,
"opponent_defense_weakness": -0.0054,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0008,
"run_prevention": 0.9903,
"strikeout": 1.006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "672282",
"profile": {
"available": true,
"pitcher_id": "672282",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 694.0,
"k_percent": 28.4,
"bb_percent": 6.4,
"woba": 0.273,
"xwoba": 0.279,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 37.9,
"avg_best_speed": 79.7161,
"avg_hyper_speed": 94.2133,
"whiff_percent": 28.9,
"swing_percent": 49.4
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5256,
"command_and_miss": 0.7414,
"regression_edge": -0.1714,
"xwoba_edge": 0.9143,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.0,
"whiff_edge": 0.5571,
"bb_edge": 0.675,
"pitch_design_score": -0.103
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "672282",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.02393441073,
"release_spin_rate": 2234.8342638538984,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.02393441073,
"release_spin_rate": 2234.8342638538984,
"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.0239,
"release_spin_rate": 2234.8343,
"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.103,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7359,
"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.4617,
"sample_weight": 1.0,
"run_prevention_factor": 0.9608,
"strikeout_factor": 1.0589,
"walk_factor": 0.946,
"homer_factor": 0.9797,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "672282",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9608,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9608,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9797,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0589,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260925_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_LAA@SEA | home | Bryce Miller | Bryce Miller | True | 5.1 | 6.0 | 2 | 4 | 5 | 1 | 4/6 | 4/2 | 2/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.994082840236686,
"WHIP": 1.1538461538461537,
"IP": 112.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.383,
"recent_avg_IP": 4.6,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2686,
"sample_weight": 1.0,
"run_prevention_factor": 0.9772,
"strikeout_factor": 1.0154,
"walk_factor": 0.974,
"homer_factor": 0.9632,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 7.8,
"woba": 0.306,
"xwoba": 0.295,
"barrel_percent": 7.8,
"hard_hit_percent": 32.0,
"whiff_percent": 25.3
},
"espn_rank": {
"rank": 125,
"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": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682243",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 13.0,
"R": 14.0,
"H": 19.0,
"BB": 18.0,
"SO": 25.0,
"HR": 5.0,
"BF": 105.0,
"Pitches": 433.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.8,
"H": 3.8,
"BB": 3.6,
"SO": 5.0,
"HR": 1.0,
"BF": 21.0,
"Pitches": 86.6
},
"rates": {
"ERA": 5.087,
"WHIP": 1.6087,
"ER_per_IP": 0.56522,
"H_per_IP": 0.82609,
"BB_per_IP": 0.78261,
"SO_per_IP": 1.08696,
"HR_per_IP": 0.21739
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 34.0,
"R": 36.0,
"H": 48.0,
"BB": 26.0,
"SO": 41.0,
"HR": 11.0,
"BF": 218.0,
"Pitches": 883.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.6,
"H": 4.8,
"BB": 2.6,
"SO": 4.1,
"HR": 1.1,
"BF": 21.8,
"Pitches": 88.3
},
"rates": {
"ERA": 6.2027,
"WHIP": 1.5,
"ER_per_IP": 0.68919,
"H_per_IP": 0.97297,
"BB_per_IP": 0.52703,
"SO_per_IP": 0.83108,
"HR_per_IP": 0.22297
}
},
"season": {
"games": 21,
"totals": {
"IP": 112.2,
"ER": 50.0,
"R": 55.0,
"H": 94.0,
"BB": 36.0,
"SO": 112.0,
"HR": 20.0,
"BF": 459.0,
"Pitches": 1793.0
},
"per_game": {
"IP": 5.1,
"ER": 2.381,
"R": 2.619,
"H": 4.4762,
"BB": 1.7143,
"SO": 5.3333,
"HR": 0.9524,
"BF": 21.8571,
"Pitches": 85.381
},
"rates": {
"ERA": 3.9941,
"WHIP": 1.1538,
"ER_per_IP": 0.44379,
"H_per_IP": 0.83432,
"BB_per_IP": 0.31953,
"SO_per_IP": 0.99408,
"HR_per_IP": 0.17751
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.851,
"predicted_H": 4.494,
"predicted_BB": 2.787,
"predicted_SO": 4.85,
"predicted_HR": 0.996,
"predicted_ERA": 5.1351,
"predicted_WHIP": 1.4571
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.851,
"final": 3.3465,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.494,
"final": 4.281,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.787,
"final": 3.3101,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.85,
"final": 3.6209,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.996,
"final": 0.9977,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1351,
"final": 5.1351,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4571,
"final": 1.4571,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 34,
"H": 48,
"BB": 26,
"SO": 41,
"HR": 11,
"ERA": 6.202702702702703,
"WHIP": 1.5,
"K9": 7.479729729729729,
"HR9": 2.0067567567567566,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.19604433151596,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682243",
"player_name": "Bryce Miller",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 159,
"wins": 74,
"losses": 85,
"win_pct": 0.4654,
"runs_scored": 644.0,
"runs_allowed": 708.0,
"run_differential": -64.0,
"run_differential_per_game": -0.4025,
"avg_runs_scored": 4.0503,
"avg_runs_allowed": 4.4528,
"offense_index": 0.9047,
"defense_index": 1.0054,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.6,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.1139
},
"opponent": {
"team": "LAA",
"games": 159,
"wins": 61,
"losses": 98,
"win_pct": 0.3836,
"runs_scored": 641.0,
"runs_allowed": 732.0,
"run_differential": -91.0,
"run_differential_per_game": -0.5723,
"avg_runs_scored": 4.0314,
"avg_runs_allowed": 4.6038,
"offense_index": 0.9005,
"defense_index": 0.9724,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.2,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1693
},
"edges": {
"quality_edge": 0.0554,
"offense_edge": -0.0953,
"opponent_offense_edge": -0.0995,
"defense_strength": 0.0054,
"opponent_defense_weakness": 0.0276,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0064,
"run_prevention": 0.9808,
"strikeout": 1.0096
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682243",
"profile": {
"available": true,
"pitcher_id": "682243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 434.0,
"k_percent": 24.4,
"bb_percent": 7.8,
"woba": 0.306,
"xwoba": 0.295,
"sweet_spot_percent": 31.7,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 32.0,
"avg_best_speed": 76.8613,
"avg_hyper_speed": 92.9426,
"whiff_percent": 25.3,
"swing_percent": 54.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3092,
"command_and_miss": 0.2343,
"regression_edge": 0.3143,
"xwoba_edge": 0.4571,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.8429,
"whiff_edge": 0.0429,
"bb_edge": 0.325,
"pitch_design_score": 0.0394
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682243",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.56804412225787,
"release_spin_rate": 2160.500947400786,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.56804412225787,
"release_spin_rate": 2160.500947400786,
"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.568,
"release_spin_rate": 2160.5009,
"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.2817,
"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.2686,
"sample_weight": 1.0,
"run_prevention_factor": 0.9772,
"strikeout_factor": 1.0154,
"walk_factor": 0.974,
"homer_factor": 0.9632,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "682243",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9772,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9772,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 0.974,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9632,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0154,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 95,
"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/20260925_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_LAD@SF | away | Tarik Skubal | Tarik Skubal | True | 6.1 | 7.0 | 2 | 1 | 0 | -1 | 2/3 | 1/0 | 7/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8483516483516484,
"WHIP": 0.989010989010989,
"IP": 151.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 6.067,
"recent_avg_IP": 6.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6883,
"sample_weight": 1.0,
"run_prevention_factor": 0.9415,
"strikeout_factor": 1.0777,
"walk_factor": 0.908,
"homer_factor": 0.9467,
"regression_flag": "neutral",
"k_percent": 29.5,
"bb_percent": 4.5,
"woba": 0.27,
"xwoba": 0.271,
"barrel_percent": 6.9,
"hard_hit_percent": 35.5,
"whiff_percent": 31.1
},
"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": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669373",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 9.0,
"R": 9.0,
"H": 29.0,
"BB": 6.0,
"SO": 30.0,
"HR": 2.0,
"BF": 124.0,
"Pitches": 455.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 5.8,
"BB": 1.2,
"SO": 6.0,
"HR": 0.4,
"BF": 24.8,
"Pitches": 91.0
},
"rates": {
"ERA": 2.6129,
"WHIP": 1.129,
"ER_per_IP": 0.29032,
"H_per_IP": 0.93548,
"BB_per_IP": 0.19355,
"SO_per_IP": 0.96774,
"HR_per_IP": 0.06452
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.2,
"ER": 21.0,
"R": 22.0,
"H": 53.0,
"BB": 14.0,
"SO": 66.0,
"HR": 4.0,
"BF": 248.0,
"Pitches": 942.0
},
"per_game": {
"IP": 6.0,
"ER": 2.1,
"R": 2.2,
"H": 5.3,
"BB": 1.4,
"SO": 6.6,
"HR": 0.4,
"BF": 24.8,
"Pitches": 94.2
},
"rates": {
"ERA": 3.0649,
"WHIP": 1.0865,
"ER_per_IP": 0.34054,
"H_per_IP": 0.85946,
"BB_per_IP": 0.22703,
"SO_per_IP": 1.07027,
"HR_per_IP": 0.06486
}
},
"season": {
"games": 25,
"totals": {
"IP": 151.2,
"ER": 48.0,
"R": 52.0,
"H": 123.0,
"BB": 27.0,
"SO": 176.0,
"HR": 14.0,
"BF": 597.0,
"Pitches": 2281.0
},
"per_game": {
"IP": 6.0,
"ER": 1.92,
"R": 2.08,
"H": 4.92,
"BB": 1.08,
"SO": 7.04,
"HR": 0.56,
"BF": 23.88,
"Pitches": 91.24
},
"rates": {
"ERA": 2.8484,
"WHIP": 0.989,
"ER_per_IP": 0.31648,
"H_per_IP": 0.81099,
"BB_per_IP": 0.17802,
"SO_per_IP": 1.16044,
"HR_per_IP": 0.09231
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.141,
"predicted_H": 5.567,
"predicted_BB": 1.431,
"predicted_SO": 6.332,
"predicted_HR": 0.515,
"predicted_ERA": 3.1177,
"predicted_WHIP": 1.1321
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.141,
"final": 1.6613,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.567,
"final": 4.0673,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.431,
"final": 1.2498,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.332,
"final": 6.6128,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.515,
"final": 1.1393,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1177,
"final": 3.1177,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1321,
"final": 1.1321,
"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": 61.2,
"ER": 21,
"H": 53,
"BB": 14,
"SO": 66,
"HR": 4,
"ERA": 3.064864864864865,
"WHIP": 1.0864864864864865,
"K9": 9.632432432432433,
"HR9": 0.5837837837837838,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.8326997369213652,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669373",
"player_name": "Tarik Skubal",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 6.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 6.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 159,
"wins": 97,
"losses": 62,
"win_pct": 0.6101,
"runs_scored": 790.0,
"runs_allowed": 596.0,
"run_differential": 194.0,
"run_differential_per_game": 1.2201,
"avg_runs_scored": 4.9686,
"avg_runs_allowed": 3.7484,
"offense_index": 1.1098,
"defense_index": 1.1943,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 2.5,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.3135
},
"opponent": {
"team": "SF",
"games": 159,
"wins": 65,
"losses": 94,
"win_pct": 0.4088,
"runs_scored": 665.0,
"runs_allowed": 749.0,
"run_differential": -84.0,
"run_differential_per_game": -0.5283,
"avg_runs_scored": 4.1824,
"avg_runs_allowed": 4.7107,
"offense_index": 0.9342,
"defense_index": 0.9504,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.6,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2124
},
"edges": {
"quality_edge": 0.5259,
"offense_edge": 0.1098,
"opponent_offense_edge": -0.0658,
"defense_strength": 0.1943,
"opponent_defense_weakness": 0.0496,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0295,
"run_prevention": 0.9437,
"strikeout": 1.021
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669373",
"profile": {
"available": true,
"pitcher_id": "669373",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 569.0,
"k_percent": 29.5,
"bb_percent": 4.5,
"woba": 0.27,
"xwoba": 0.271,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 35.5,
"avg_best_speed": 75.4445,
"avg_hyper_speed": 93.5394,
"whiff_percent": 31.1,
"swing_percent": 53.3
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7398,
"command_and_miss": 1.0171,
"regression_edge": -0.0286,
"xwoba_edge": 1.1429,
"barrel_edge": 0.0667,
"hard_hit_edge": 0.3429,
"whiff_edge": 0.8714,
"bb_edge": 1.15,
"pitch_design_score": 0.155
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669373",
"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.63147798168428,
"release_spin_rate": 2173.3742821287633,
"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.63147798168428,
"release_spin_rate": 2173.3742821287633,
"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.6315,
"release_spin_rate": 2173.3743,
"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.155,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1071,
"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.6883,
"sample_weight": 1.0,
"run_prevention_factor": 0.9415,
"strikeout_factor": 1.0777,
"walk_factor": 0.908,
"homer_factor": 0.9467,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669373",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9415,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9415,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.908,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9467,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0777,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 102,
"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/20260925_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_LAD@SF | home | Yunior Marte | Yunior Marte | True | 4.2 | 5.0 | 1 | 3 | 2 | -1 | 3/6 | 3/1 | 6/4 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 4.655172413793104,
"WHIP": 1.396551724137931,
"IP": 19.1,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.667,
"recent_avg_IP": 4.667,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2317,
"sample_weight": 0.45,
"run_prevention_factor": 1.0197,
"strikeout_factor": 0.9612,
"walk_factor": 1.0153,
"homer_factor": 1.0496,
"regression_flag": "neutral",
"k_percent": 13.3,
"bb_percent": 10.8,
"woba": 0.342,
"xwoba": 0.336,
"barrel_percent": 11.1,
"hard_hit_percent": 41.3,
"whiff_percent": 18.6
},
"espn_rank": {
"rank": 707,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "805074",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 10.0,
"R": 10.0,
"H": 18.0,
"BB": 9.0,
"SO": 11.0,
"HR": 3.0,
"BF": 83.0,
"Pitches": 312.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5,
"R": 2.5,
"H": 4.5,
"BB": 2.25,
"SO": 2.75,
"HR": 0.75,
"BF": 20.75,
"Pitches": 78.0
},
"rates": {
"ERA": 4.6552,
"WHIP": 1.3966,
"ER_per_IP": 0.51724,
"H_per_IP": 0.93103,
"BB_per_IP": 0.46552,
"SO_per_IP": 0.56897,
"HR_per_IP": 0.15517
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 10.0,
"R": 10.0,
"H": 18.0,
"BB": 9.0,
"SO": 11.0,
"HR": 3.0,
"BF": 83.0,
"Pitches": 312.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5,
"R": 2.5,
"H": 4.5,
"BB": 2.25,
"SO": 2.75,
"HR": 0.75,
"BF": 20.75,
"Pitches": 78.0
},
"rates": {
"ERA": 4.6552,
"WHIP": 1.3966,
"ER_per_IP": 0.51724,
"H_per_IP": 0.93103,
"BB_per_IP": 0.46552,
"SO_per_IP": 0.56897,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 10.0,
"R": 10.0,
"H": 18.0,
"BB": 9.0,
"SO": 11.0,
"HR": 3.0,
"BF": 83.0,
"Pitches": 312.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5,
"R": 2.5,
"H": 4.5,
"BB": 2.25,
"SO": 2.75,
"HR": 0.75,
"BF": 20.75,
"Pitches": 78.0
},
"rates": {
"ERA": 4.6552,
"WHIP": 1.3966,
"ER_per_IP": 0.51724,
"H_per_IP": 0.93103,
"BB_per_IP": 0.46552,
"SO_per_IP": 0.56897,
"HR_per_IP": 0.15517
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.402,
"predicted_H": 4.483,
"predicted_BB": 1.945,
"predicted_SO": 3.608,
"predicted_HR": 0.708,
"predicted_ERA": 4.6329,
"predicted_WHIP": 1.3774
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.402,
"final": 2.7517,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.483,
"final": 3.6158,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.945,
"final": 2.5619,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.608,
"final": 5.0067,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.708,
"final": 1.4635,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6329,
"final": 4.6329,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3774,
"final": 1.3774,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 19.1,
"ER": 10,
"H": 18,
"BB": 9,
"SO": 11,
"HR": 3,
"ERA": 4.655172413793103,
"WHIP": 1.3965517241379308,
"K9": 5.120689655172413,
"HR9": 1.3965517241379308,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.0124470698741688,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "805074",
"player_name": "Yunior Marte",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 159,
"wins": 65,
"losses": 94,
"win_pct": 0.4088,
"runs_scored": 665.0,
"runs_allowed": 749.0,
"run_differential": -84.0,
"run_differential_per_game": -0.5283,
"avg_runs_scored": 4.1824,
"avg_runs_allowed": 4.7107,
"offense_index": 0.9342,
"defense_index": 0.9504,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.6,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2124
},
"opponent": {
"team": "LAD",
"games": 159,
"wins": 97,
"losses": 62,
"win_pct": 0.6101,
"runs_scored": 790.0,
"runs_allowed": 596.0,
"run_differential": 194.0,
"run_differential_per_game": 1.2201,
"avg_runs_scored": 4.9686,
"avg_runs_allowed": 3.7484,
"offense_index": 1.1098,
"defense_index": 1.1943,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 2.5,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.3135
},
"edges": {
"quality_edge": -0.5259,
"offense_edge": -0.0658,
"opponent_offense_edge": 0.1098,
"defense_strength": -0.0496,
"opponent_defense_weakness": -0.1943,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9731,
"run_prevention": 1.0488,
"strikeout": 0.9754
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "805074",
"profile": {
"available": true,
"pitcher_id": "805074",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 59.0,
"k_percent": 13.3,
"bb_percent": 10.8,
"woba": 0.342,
"xwoba": 0.336,
"sweet_spot_percent": 30.2,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 41.3,
"avg_best_speed": 75.7741,
"avg_hyper_speed": 94.6032,
"whiff_percent": 18.6,
"swing_percent": 44.9
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4937,
"command_and_miss": -0.9643,
"regression_edge": 0.1714,
"xwoba_edge": -0.7143,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.4857,
"whiff_edge": -0.9143,
"bb_edge": -0.425,
"pitch_design_score": -0.0613
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "805074",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 88.76853497379813,
"release_spin_rate": 1889.510442161121,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 88.76853497379813,
"release_spin_rate": 1889.510442161121,
"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.7685,
"release_spin_rate": 1889.5104,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0613,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4381,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2317,
"sample_weight": 0.45,
"run_prevention_factor": 1.0197,
"strikeout_factor": 0.9612,
"walk_factor": 1.0153,
"homer_factor": 1.0496,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "805074",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0089,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0089,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0069,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0223,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9825,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260925_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_NYM@WAS | away | Jefry Yan | Jefry Yan | True | 4.0 | 1.2 | -7 | 2 | 2 | 0 | 2/3 | 0/2 | 2/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.339285714285714,
"WHIP": 1.607142857142857,
"IP": 18.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1778,
"sample_weight": 0.45,
"run_prevention_factor": 0.9849,
"strikeout_factor": 1.0494,
"walk_factor": 1.0513,
"homer_factor": 0.9823,
"regression_flag": "neutral",
"k_percent": 29.6,
"bb_percent": 14.8,
"woba": 0.314,
"xwoba": 0.301,
"barrel_percent": 4.5,
"hard_hit_percent": 40.9,
"whiff_percent": 36.6
},
"espn_rank": {
"rank": 554,
"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": 3.821,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4332,
"prior_weight": 0.5668
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "642376",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.0,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 3.0,
"SO": 10.0,
"HR": 2.0,
"BF": 29.0,
"Pitches": 117.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6,
"R": 0.6,
"H": 1.0,
"BB": 0.6,
"SO": 2.0,
"HR": 0.4,
"BF": 5.8,
"Pitches": 23.4
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.1429,
"ER_per_IP": 0.42857,
"H_per_IP": 0.71429,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.42857,
"HR_per_IP": 0.28571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 12.1,
"ER": 6.0,
"R": 7.0,
"H": 11.0,
"BB": 7.0,
"SO": 18.0,
"HR": 2.0,
"BF": 56.0,
"Pitches": 220.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6,
"R": 0.7,
"H": 1.1,
"BB": 0.7,
"SO": 1.8,
"HR": 0.2,
"BF": 5.6,
"Pitches": 22.0
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.4595,
"ER_per_IP": 0.48649,
"H_per_IP": 0.89189,
"BB_per_IP": 0.56757,
"SO_per_IP": 1.45946,
"HR_per_IP": 0.16216
}
},
"season": {
"games": 17,
"totals": {
"IP": 18.2,
"ER": 9.0,
"R": 10.0,
"H": 17.0,
"BB": 13.0,
"SO": 25.0,
"HR": 3.0,
"BF": 86.0,
"Pitches": 330.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5294,
"R": 0.5882,
"H": 1.0,
"BB": 0.7647,
"SO": 1.4706,
"HR": 0.1765,
"BF": 5.0588,
"Pitches": 19.4118
},
"rates": {
"ERA": 4.3393,
"WHIP": 1.6071,
"ER_per_IP": 0.48214,
"H_per_IP": 0.91071,
"BB_per_IP": 0.69643,
"SO_per_IP": 1.33929,
"HR_per_IP": 0.16071
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.564,
"predicted_H": 2.91,
"predicted_BB": 1.418,
"predicted_SO": 3.662,
"predicted_HR": 0.571,
"predicted_ERA": 4.4076,
"predicted_WHIP": 1.3553
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5895,
"form_weight": 0.4105,
"form_reliability": 0.4332,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.821,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4332,
"prior_weight": 0.5668
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.564,
"final": 1.821,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 2.91,
"final": 2.3736,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.418,
"final": 0.5821,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.662,
"final": 2.6823,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.571,
"final": 1.4134,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4076,
"final": 4.4076,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3553,
"final": 1.3553,
"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": 12.1,
"ER": 6,
"H": 11,
"BB": 7,
"SO": 18,
"HR": 2,
"ERA": 4.378378378378379,
"WHIP": 1.4594594594594597,
"K9": 13.135135135135137,
"HR9": 1.4594594594594597,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 0.995814423658378,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.821,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4332,
"prior_weight": 0.5668
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "642376",
"player_name": "Jefry Yan",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 159,
"wins": 73,
"losses": 86,
"win_pct": 0.4591,
"runs_scored": 682.0,
"runs_allowed": 717.0,
"run_differential": -35.0,
"run_differential_per_game": -0.2201,
"avg_runs_scored": 4.2893,
"avg_runs_allowed": 4.5094,
"offense_index": 0.9585,
"defense_index": 0.9924,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.0,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0968
},
"opponent": {
"team": "WAS",
"games": 159,
"wins": 75,
"losses": 84,
"win_pct": 0.4717,
"runs_scored": 807.0,
"runs_allowed": 798.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0566,
"avg_runs_scored": 5.0755,
"avg_runs_allowed": 5.0189,
"offense_index": 1.1342,
"defense_index": 0.8916,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.9,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0529
},
"edges": {
"quality_edge": -0.1497,
"offense_edge": -0.0415,
"opponent_offense_edge": 0.1342,
"defense_strength": -0.0076,
"opponent_defense_weakness": 0.1084,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9884,
"run_prevention": 1.0297,
"strikeout": 0.9848
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642376",
"profile": {
"available": true,
"pitcher_id": "642376",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 70.0,
"k_percent": 29.6,
"bb_percent": 14.8,
"woba": 0.314,
"xwoba": 0.301,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 40.9,
"avg_best_speed": 76.1949,
"avg_hyper_speed": 94.2655,
"whiff_percent": 36.6,
"swing_percent": 46.2
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2367,
"command_and_miss": 0.7836,
"regression_edge": 0.3714,
"xwoba_edge": 0.2857,
"barrel_edge": 0.6,
"hard_hit_edge": -0.4286,
"whiff_edge": 1.6571,
"bb_edge": -1.425,
"pitch_design_score": 0.272
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642376",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 26,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 26,
"pitch_usage": 0.0,
"release_speed": 94.72026896051943,
"release_spin_rate": 2440.8606862686183,
"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": 26,
"pitch_usage": 0.0,
"release_speed": 94.72026896051943,
"release_spin_rate": 2440.8606862686183,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.7203,
"release_spin_rate": 2440.8607,
"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.272,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.9426,
"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.1778,
"sample_weight": 0.45,
"run_prevention_factor": 0.9849,
"strikeout_factor": 1.0494,
"walk_factor": 1.0513,
"homer_factor": 0.9823,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "642376",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9932,
"adjusted": 0
},
"predicted_H": {
"original": 0.0,
"factor": 0.9932,
"adjusted": 0
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0231,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.992,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0222,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 14,
"Pitches": 60,
"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": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260925_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_NYM@WAS | home | Andrew Alvarez | Andrew Alvarez | True | 5.2 | 4.2 | -3 | 2 | 5 | 3 | 4/7 | 0/3 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1666666666666665,
"WHIP": 1.2592592592592593,
"IP": 108.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.083,
"recent_avg_IP": 5.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0526,
"sample_weight": 1.0,
"run_prevention_factor": 0.9955,
"strikeout_factor": 1.0171,
"walk_factor": 1.032,
"homer_factor": 0.9792,
"regression_flag": "neutral",
"k_percent": 23.8,
"bb_percent": 10.7,
"woba": 0.288,
"xwoba": 0.31,
"barrel_percent": 5.5,
"hard_hit_percent": 39.7,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 48,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 108.0,
"season_ERA": 3.167,
"season_WHIP": 1.259,
"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": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "674841",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 6.0,
"R": 6.0,
"H": 17.0,
"BB": 12.0,
"SO": 33.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.2,
"ER": 1.2,
"R": 1.2,
"H": 3.4,
"BB": 2.4,
"SO": 6.6,
"HR": 0.2,
"BF": 22.2,
"Pitches": 89.0
},
"rates": {
"ERA": 1.9286,
"WHIP": 1.0357,
"ER_per_IP": 0.21429,
"H_per_IP": 0.60714,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.17857,
"HR_per_IP": 0.03571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 13.0,
"R": 13.0,
"H": 33.0,
"BB": 23.0,
"SO": 52.0,
"HR": 3.0,
"BF": 217.0,
"Pitches": 827.0
},
"per_game": {
"IP": 5.1,
"ER": 1.3,
"R": 1.3,
"H": 3.3,
"BB": 2.3,
"SO": 5.2,
"HR": 0.3,
"BF": 21.7,
"Pitches": 82.7
},
"rates": {
"ERA": 2.1402,
"WHIP": 1.0244,
"ER_per_IP": 0.2378,
"H_per_IP": 0.60366,
"BB_per_IP": 0.42073,
"SO_per_IP": 0.95122,
"HR_per_IP": 0.05488
}
},
"season": {
"games": 24,
"totals": {
"IP": 108.0,
"ER": 38.0,
"R": 38.0,
"H": 88.0,
"BB": 48.0,
"SO": 107.0,
"HR": 5.0,
"BF": 450.0,
"Pitches": 1756.0
},
"per_game": {
"IP": 4.2,
"ER": 1.5833,
"R": 1.5833,
"H": 3.6667,
"BB": 2.0,
"SO": 4.4583,
"HR": 0.2083,
"BF": 18.75,
"Pitches": 73.1667
},
"rates": {
"ERA": 3.1667,
"WHIP": 1.2593,
"ER_per_IP": 0.35185,
"H_per_IP": 0.81481,
"BB_per_IP": 0.44444,
"SO_per_IP": 0.99074,
"HR_per_IP": 0.0463
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.596,
"predicted_H": 3.813,
"predicted_BB": 2.271,
"predicted_SO": 5.62,
"predicted_HR": 0.338,
"predicted_ERA": 2.658,
"predicted_WHIP": 1.1257
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.596,
"final": 1.7668,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.813,
"final": 3.8921,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.271,
"final": 1.3107,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.62,
"final": 5.7807,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.338,
"final": 0.1951,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.658,
"final": 2.658,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1257,
"final": 1.1257,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 13,
"H": 33,
"BB": 23,
"SO": 52,
"HR": 3,
"ERA": 2.1402439024390243,
"WHIP": 1.024390243902439,
"K9": 8.560975609756097,
"HR9": 0.4939024390243902,
"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-19T00:00:00"
},
"recent_form_boost": 0.727127472583857,
"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": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "674841",
"player_name": "Andrew Alvarez",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 159,
"wins": 75,
"losses": 84,
"win_pct": 0.4717,
"runs_scored": 807.0,
"runs_allowed": 798.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0566,
"avg_runs_scored": 5.0755,
"avg_runs_allowed": 5.0189,
"offense_index": 1.1342,
"defense_index": 0.8916,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.9,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0529
},
"opponent": {
"team": "NYM",
"games": 159,
"wins": 73,
"losses": 86,
"win_pct": 0.4591,
"runs_scored": 682.0,
"runs_allowed": 717.0,
"run_differential": -35.0,
"run_differential_per_game": -0.2201,
"avg_runs_scored": 4.2893,
"avg_runs_allowed": 4.5094,
"offense_index": 0.9585,
"defense_index": 0.9924,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.0,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0968
},
"edges": {
"quality_edge": 0.1497,
"offense_edge": 0.1342,
"opponent_offense_edge": -0.0415,
"defense_strength": -0.1084,
"opponent_defense_weakness": 0.0076,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0044,
"run_prevention": 0.9967,
"strikeout": 1.0078
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "674841",
"profile": {
"available": true,
"pitcher_id": "674841",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 411.0,
"k_percent": 23.8,
"bb_percent": 10.7,
"woba": 0.288,
"xwoba": 0.31,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.5,
"hard_hit_percent": 39.7,
"avg_best_speed": 77.9064,
"avg_hyper_speed": 94.3329,
"whiff_percent": 26.2,
"swing_percent": 44.1
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1829,
"command_and_miss": 0.0957,
"regression_edge": -0.6286,
"xwoba_edge": 0.0286,
"barrel_edge": 0.3778,
"hard_hit_edge": -0.2571,
"whiff_edge": 0.1714,
"bb_edge": -0.4,
"pitch_design_score": -0.1483
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674841",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 87.21515384526589,
"release_spin_rate": 2496.6767478148677,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 87.21515384526589,
"release_spin_rate": 2496.6767478148677,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.2152,
"release_spin_rate": 2496.6767,
"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.1483,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0594,
"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.0526,
"sample_weight": 1.0,
"run_prevention_factor": 0.9955,
"strikeout_factor": 1.0171,
"walk_factor": 1.032,
"homer_factor": 0.9792,
"woba_minus_xwoba": -0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "674841",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9955,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9955,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.032,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9792,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0171,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260925_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_PIT@DET | away | Bubba Chandler | Bubba Chandler | True | 5.0 | 2.2 | -7 | 3 | 6 | 3 | 4/4 | 1/4 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.341409691629956,
"WHIP": 1.3744493392070485,
"IP": 151.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.034,
"recent_avg_IP": 5.2,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0838,
"sample_weight": 1.0,
"run_prevention_factor": 1.0071,
"strikeout_factor": 0.9777,
"walk_factor": 1.05,
"homer_factor": 0.9922,
"regression_flag": "neutral",
"k_percent": 21.0,
"bb_percent": 11.6,
"woba": 0.313,
"xwoba": 0.316,
"barrel_percent": 6.2,
"hard_hit_percent": 38.9,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 120,
"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": "696149",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 12.0,
"R": 13.0,
"H": 26.0,
"BB": 10.0,
"SO": 24.0,
"HR": 4.0,
"BF": 110.0,
"Pitches": 446.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.6,
"H": 5.2,
"BB": 2.0,
"SO": 4.8,
"HR": 0.8,
"BF": 22.0,
"Pitches": 89.2
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.3846,
"ER_per_IP": 0.46154,
"H_per_IP": 1.0,
"BB_per_IP": 0.38462,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.15385
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 23.0,
"R": 27.0,
"H": 48.0,
"BB": 20.0,
"SO": 48.0,
"HR": 5.0,
"BF": 215.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3,
"R": 2.7,
"H": 4.8,
"BB": 2.0,
"SO": 4.8,
"HR": 0.5,
"BF": 21.5,
"Pitches": 89.3
},
"rates": {
"ERA": 4.0855,
"WHIP": 1.3421,
"ER_per_IP": 0.45395,
"H_per_IP": 0.94737,
"BB_per_IP": 0.39474,
"SO_per_IP": 0.94737,
"HR_per_IP": 0.09868
}
},
"season": {
"games": 30,
"totals": {
"IP": 151.1,
"ER": 73.0,
"R": 83.0,
"H": 132.0,
"BB": 76.0,
"SO": 138.0,
"HR": 15.0,
"BF": 657.0,
"Pitches": 2609.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4333,
"R": 2.7667,
"H": 4.4,
"BB": 2.5333,
"SO": 4.6,
"HR": 0.5,
"BF": 21.9,
"Pitches": 86.9667
},
"rates": {
"ERA": 4.3414,
"WHIP": 1.3744,
"ER_per_IP": 0.48238,
"H_per_IP": 0.87225,
"BB_per_IP": 0.5022,
"SO_per_IP": 0.91189,
"HR_per_IP": 0.09912
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.411,
"predicted_H": 4.924,
"predicted_BB": 2.087,
"predicted_SO": 4.772,
"predicted_HR": 0.652,
"predicted_ERA": 4.2314,
"predicted_WHIP": 1.3669
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.411,
"final": 2.6527,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.924,
"final": 4.5448,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.087,
"final": 1.6409,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.772,
"final": 5.6863,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.652,
"final": 0.7948,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2314,
"final": 4.2314,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3669,
"final": 1.3669,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 23,
"H": 48,
"BB": 20,
"SO": 48,
"HR": 5,
"ERA": 4.0855263157894735,
"WHIP": 1.3421052631578947,
"K9": 8.526315789473685,
"HR9": 0.8881578947368421,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.9539146195671689,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696149",
"player_name": "Bubba Chandler",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "PIT",
"games": 159,
"wins": 81,
"losses": 78,
"win_pct": 0.5094,
"runs_scored": 753.0,
"runs_allowed": 725.0,
"run_differential": 28.0,
"run_differential_per_game": 0.1761,
"avg_runs_scored": 4.7358,
"avg_runs_allowed": 4.5597,
"offense_index": 1.0583,
"defense_index": 0.9814,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.6,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0996
},
"opponent": {
"team": "DET",
"games": 159,
"wins": 74,
"losses": 85,
"win_pct": 0.4654,
"runs_scored": 709.0,
"runs_allowed": 638.0,
"run_differential": 71.0,
"run_differential_per_game": 0.4465,
"avg_runs_scored": 4.4591,
"avg_runs_allowed": 4.0126,
"offense_index": 0.9964,
"defense_index": 1.1153,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0095
},
"edges": {
"quality_edge": 0.1091,
"offense_edge": 0.0583,
"opponent_offense_edge": -0.0036,
"defense_strength": -0.0186,
"opponent_defense_weakness": -0.1153,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0039,
"run_prevention": 0.9958,
"strikeout": 1.0036
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696149",
"profile": {
"available": true,
"pitcher_id": "696149",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 634.0,
"k_percent": 21.0,
"bb_percent": 11.6,
"woba": 0.313,
"xwoba": 0.316,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 38.9,
"avg_best_speed": 78.6137,
"avg_hyper_speed": 93.9769,
"whiff_percent": 22.1,
"swing_percent": 46.9
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.019,
"command_and_miss": -0.3343,
"regression_edge": -0.0857,
"xwoba_edge": -0.1429,
"barrel_edge": 0.2222,
"hard_hit_edge": -0.1429,
"whiff_edge": -0.4143,
"bb_edge": -0.625,
"pitch_design_score": 0.2792
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696149",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 94.85024086236014,
"release_spin_rate": 2332.2239071943923,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 94.85024086236014,
"release_spin_rate": 2332.2239071943923,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.8502,
"release_spin_rate": 2332.2239,
"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.2792,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.9946,
"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.0838,
"sample_weight": 1.0,
"run_prevention_factor": 1.0071,
"strikeout_factor": 0.9777,
"walk_factor": 1.05,
"homer_factor": 0.9922,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "696149",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0071,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0071,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.05,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9922,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9777,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 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/20260925_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_PIT@DET | home | Jackson Jobe | Jackson Jobe | True | 5.1 | 5.1 | 0 | 2 | 2 | 0 | 2/3 | 3/2 | 5/8 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 3.9836065573770494,
"WHIP": 1.2049180327868854,
"IP": 40.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 5.083,
"recent_avg_IP": 5.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0325,
"sample_weight": 0.588,
"run_prevention_factor": 0.9972,
"strikeout_factor": 1.005,
"walk_factor": 0.9882,
"homer_factor": 1.0204,
"regression_flag": "neutral",
"k_percent": 25.0,
"bb_percent": 8.1,
"woba": 0.324,
"xwoba": 0.312,
"barrel_percent": 10.0,
"hard_hit_percent": 35.1,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 269,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695549",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 11.0,
"R": 12.0,
"H": 21.0,
"BB": 9.0,
"SO": 32.0,
"HR": 5.0,
"BF": 111.0,
"Pitches": 454.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.4,
"H": 4.2,
"BB": 1.8,
"SO": 6.4,
"HR": 1.0,
"BF": 22.2,
"Pitches": 90.8
},
"rates": {
"ERA": 3.7125,
"WHIP": 1.125,
"ER_per_IP": 0.4125,
"H_per_IP": 0.7875,
"BB_per_IP": 0.3375,
"SO_per_IP": 1.2,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 40.2,
"ER": 18.0,
"R": 19.0,
"H": 35.0,
"BB": 14.0,
"SO": 43.0,
"HR": 7.0,
"BF": 172.0,
"Pitches": 685.0
},
"per_game": {
"IP": 5.0,
"ER": 2.25,
"R": 2.375,
"H": 4.375,
"BB": 1.75,
"SO": 5.375,
"HR": 0.875,
"BF": 21.5,
"Pitches": 85.625
},
"rates": {
"ERA": 3.9836,
"WHIP": 1.2049,
"ER_per_IP": 0.44262,
"H_per_IP": 0.86066,
"BB_per_IP": 0.34426,
"SO_per_IP": 1.05738,
"HR_per_IP": 0.17213
}
},
"season": {
"games": 8,
"totals": {
"IP": 40.2,
"ER": 18.0,
"R": 19.0,
"H": 35.0,
"BB": 14.0,
"SO": 43.0,
"HR": 7.0,
"BF": 172.0,
"Pitches": 685.0
},
"per_game": {
"IP": 5.0,
"ER": 2.25,
"R": 2.375,
"H": 4.375,
"BB": 1.75,
"SO": 5.375,
"HR": 0.875,
"BF": 21.5,
"Pitches": 85.625
},
"rates": {
"ERA": 3.9836,
"WHIP": 1.2049,
"ER_per_IP": 0.44262,
"H_per_IP": 0.86066,
"BB_per_IP": 0.34426,
"SO_per_IP": 1.05738,
"HR_per_IP": 0.17213
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.407,
"predicted_H": 4.623,
"predicted_BB": 1.867,
"predicted_SO": 5.641,
"predicted_HR": 0.894,
"predicted_ERA": 4.1127,
"predicted_WHIP": 1.2318
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.407,
"final": 2.1984,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.623,
"final": 3.2787,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.867,
"final": 2.4477,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.641,
"final": 5.3125,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.894,
"final": 0.9483,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1127,
"final": 4.1127,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2318,
"final": 1.2318,
"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": 40.2,
"ER": 18,
"H": 35,
"BB": 14,
"SO": 43,
"HR": 7,
"ERA": 3.9836065573770494,
"WHIP": 1.2049180327868854,
"K9": 9.51639344262295,
"HR9": 1.5491803278688525,
"games_pitched": 8,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.939018965986496,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695549",
"player_name": "Jackson Jobe",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 159,
"wins": 74,
"losses": 85,
"win_pct": 0.4654,
"runs_scored": 709.0,
"runs_allowed": 638.0,
"run_differential": 71.0,
"run_differential_per_game": 0.4465,
"avg_runs_scored": 4.4591,
"avg_runs_allowed": 4.0126,
"offense_index": 0.9964,
"defense_index": 1.1153,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0095
},
"opponent": {
"team": "PIT",
"games": 159,
"wins": 81,
"losses": 78,
"win_pct": 0.5094,
"runs_scored": 753.0,
"runs_allowed": 725.0,
"run_differential": 28.0,
"run_differential_per_game": 0.1761,
"avg_runs_scored": 4.7358,
"avg_runs_allowed": 4.5597,
"offense_index": 1.0583,
"defense_index": 0.9814,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.6,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0996
},
"edges": {
"quality_edge": -0.1091,
"offense_edge": -0.0036,
"opponent_offense_edge": 0.0583,
"defense_strength": 0.1153,
"opponent_defense_weakness": 0.0186,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9968,
"run_prevention": 1.0033,
"strikeout": 0.9921
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695549",
"profile": {
"available": true,
"pitcher_id": "695549",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 147.0,
"k_percent": 25.0,
"bb_percent": 8.1,
"woba": 0.324,
"xwoba": 0.312,
"sweet_spot_percent": 28.8,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 35.1,
"avg_best_speed": 77.6832,
"avg_hyper_speed": 93.5876,
"whiff_percent": 23.5,
"swing_percent": 48.5
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0624,
"command_and_miss": 0.1679,
"regression_edge": 0.3429,
"xwoba_edge": -0.0286,
"barrel_edge": -0.6222,
"hard_hit_edge": 0.4,
"whiff_edge": -0.2143,
"bb_edge": 0.25,
"pitch_design_score": 0.1548
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695549",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.62807063256204,
"release_spin_rate": 2465.384813235495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.62807063256204,
"release_spin_rate": 2465.384813235495,
"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.6281,
"release_spin_rate": 2465.3848,
"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.1548,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1058,
"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.0325,
"sample_weight": 0.588,
"run_prevention_factor": 0.9972,
"strikeout_factor": 1.005,
"walk_factor": 0.9882,
"homer_factor": 1.0204,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "695549",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9984,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9984,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9931,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.012,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0029,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260925_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_STL@MIL | away | Michael McGreevy | Michael McGreevy | True | 5.1 | 4.2 | -2 | 2 | 4 | 2 | 6/9 | 0/2 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.841463414634146,
"WHIP": 1.25,
"IP": 164.0,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.467,
"recent_avg_IP": 5.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5664,
"sample_weight": 1.0,
"run_prevention_factor": 1.0481,
"strikeout_factor": 0.9423,
"walk_factor": 0.954,
"homer_factor": 1.0885,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.7,
"bb_percent": 6.8,
"woba": 0.316,
"xwoba": 0.35,
"barrel_percent": 9.3,
"hard_hit_percent": 41.0,
"whiff_percent": 20.2
},
"espn_rank": {
"rank": 94,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "700241",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 16.0,
"R": 17.0,
"H": 29.0,
"BB": 10.0,
"SO": 18.0,
"HR": 3.0,
"BF": 119.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 5.8,
"BB": 2.0,
"SO": 3.6,
"HR": 0.6,
"BF": 23.8,
"Pitches": 91.4
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4625,
"ER_per_IP": 0.6,
"H_per_IP": 1.0875,
"BB_per_IP": 0.375,
"SO_per_IP": 0.675,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 31.0,
"R": 35.0,
"H": 57.0,
"BB": 19.0,
"SO": 39.0,
"HR": 6.0,
"BF": 223.0,
"Pitches": 905.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1,
"R": 3.5,
"H": 5.7,
"BB": 1.9,
"SO": 3.9,
"HR": 0.6,
"BF": 22.3,
"Pitches": 90.5
},
"rates": {
"ERA": 5.6174,
"WHIP": 1.5302,
"ER_per_IP": 0.62416,
"H_per_IP": 1.14765,
"BB_per_IP": 0.38255,
"SO_per_IP": 0.78523,
"HR_per_IP": 0.12081
}
},
"season": {
"games": 30,
"totals": {
"IP": 164.0,
"ER": 70.0,
"R": 75.0,
"H": 159.0,
"BB": 46.0,
"SO": 113.0,
"HR": 21.0,
"BF": 677.0,
"Pitches": 2682.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3333,
"R": 2.5,
"H": 5.3,
"BB": 1.5333,
"SO": 3.7667,
"HR": 0.7,
"BF": 22.5667,
"Pitches": 89.4
},
"rates": {
"ERA": 3.8415,
"WHIP": 1.25,
"ER_per_IP": 0.42683,
"H_per_IP": 0.96951,
"BB_per_IP": 0.28049,
"SO_per_IP": 0.68902,
"HR_per_IP": 0.12805
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.957,
"predicted_H": 5.603,
"predicted_BB": 1.892,
"predicted_SO": 3.914,
"predicted_HR": 0.643,
"predicted_ERA": 5.0859,
"predicted_WHIP": 1.432
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.957,
"final": 2.5643,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.603,
"final": 5.7659,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.892,
"final": 1.1156,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.914,
"final": 5.1804,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.643,
"final": 0.7895,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0859,
"final": 5.0859,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.432,
"final": 1.432,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 31,
"H": 57,
"BB": 19,
"SO": 39,
"HR": 6,
"ERA": 5.61744966442953,
"WHIP": 1.530201342281879,
"K9": 7.067114093959731,
"HR9": 1.087248322147651,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.1309583982672748,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700241",
"player_name": "Michael McGreevy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 159,
"wins": 77,
"losses": 82,
"win_pct": 0.4843,
"runs_scored": 710.0,
"runs_allowed": 732.0,
"run_differential": -22.0,
"run_differential_per_game": -0.1384,
"avg_runs_scored": 4.4654,
"avg_runs_allowed": 4.6038,
"offense_index": 0.9979,
"defense_index": 0.972,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0654
},
"opponent": {
"team": "MIL",
"games": 159,
"wins": 100,
"losses": 59,
"win_pct": 0.6289,
"runs_scored": 815.0,
"runs_allowed": 608.0,
"run_differential": 207.0,
"run_differential_per_game": 1.3019,
"avg_runs_scored": 5.1258,
"avg_runs_allowed": 3.8239,
"offense_index": 1.1454,
"defense_index": 1.1703,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 2.9,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.3396
},
"edges": {
"quality_edge": -0.405,
"offense_edge": -0.0021,
"opponent_offense_edge": 0.1454,
"defense_strength": -0.028,
"opponent_defense_weakness": -0.1703,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9771,
"run_prevention": 1.0463,
"strikeout": 0.9762
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700241",
"profile": {
"available": true,
"pitcher_id": "700241",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 631.0,
"k_percent": 16.7,
"bb_percent": 6.8,
"woba": 0.316,
"xwoba": 0.35,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 41.0,
"avg_best_speed": 79.0662,
"avg_hyper_speed": 94.6102,
"whiff_percent": 20.2,
"swing_percent": 44.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5996,
"command_and_miss": -0.4657,
"regression_edge": -0.9714,
"xwoba_edge": -1.1143,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.4429,
"whiff_edge": -0.6857,
"bb_edge": 0.575,
"pitch_design_score": -0.1553
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700241",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 87.09044867462653,
"release_spin_rate": 2200.553287077531,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 87.09044867462653,
"release_spin_rate": 2200.553287077531,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.0904,
"release_spin_rate": 2200.5533,
"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.1553,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1093,
"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.5664,
"sample_weight": 1.0,
"run_prevention_factor": 1.0481,
"strikeout_factor": 0.9423,
"walk_factor": 0.954,
"homer_factor": 1.0885,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "700241",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0481,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0481,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0885,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9423,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260925_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_STL@MIL | home | Robert Gasser | Robert Gasser | True | 5.0 | 6.0 | 3 | 3 | 1 | -2 | 3/1 | 0/1 | 4/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.006451612903226,
"WHIP": 1.238709677419355,
"IP": 103.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.158,
"recent_avg_IP": 4.933,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0877,
"sample_weight": 1.0,
"run_prevention_factor": 1.0075,
"strikeout_factor": 0.98,
"walk_factor": 0.968,
"homer_factor": 0.989,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 7.5,
"woba": 0.317,
"xwoba": 0.322,
"barrel_percent": 7.5,
"hard_hit_percent": 33.4,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 187,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "688107",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 5.0,
"R": 6.0,
"H": 18.0,
"BB": 11.0,
"SO": 22.0,
"HR": 1.0,
"BF": 109.0,
"Pitches": 437.0
},
"per_game": {
"IP": 5.1,
"ER": 1.0,
"R": 1.2,
"H": 3.6,
"BB": 2.2,
"SO": 4.4,
"HR": 0.2,
"BF": 21.8,
"Pitches": 87.4
},
"rates": {
"ERA": 1.7089,
"WHIP": 1.1013,
"ER_per_IP": 0.18987,
"H_per_IP": 0.68354,
"BB_per_IP": 0.41772,
"SO_per_IP": 0.83544,
"HR_per_IP": 0.03797
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 18.0,
"R": 19.0,
"H": 46.0,
"BB": 20.0,
"SO": 46.0,
"HR": 3.0,
"BF": 224.0,
"Pitches": 863.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.9,
"H": 4.6,
"BB": 2.0,
"SO": 4.6,
"HR": 0.3,
"BF": 22.4,
"Pitches": 86.3
},
"rates": {
"ERA": 3.1154,
"WHIP": 1.2692,
"ER_per_IP": 0.34615,
"H_per_IP": 0.88462,
"BB_per_IP": 0.38462,
"SO_per_IP": 0.88462,
"HR_per_IP": 0.05769
}
},
"season": {
"games": 20,
"totals": {
"IP": 103.1,
"ER": 46.0,
"R": 48.0,
"H": 94.0,
"BB": 34.0,
"SO": 94.0,
"HR": 14.0,
"BF": 443.0,
"Pitches": 1730.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.4,
"H": 4.7,
"BB": 1.7,
"SO": 4.7,
"HR": 0.7,
"BF": 22.15,
"Pitches": 86.5
},
"rates": {
"ERA": 4.0065,
"WHIP": 1.2387,
"ER_per_IP": 0.44516,
"H_per_IP": 0.90968,
"BB_per_IP": 0.32903,
"SO_per_IP": 0.90968,
"HR_per_IP": 0.13548
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.786,
"predicted_H": 4.404,
"predicted_BB": 2.034,
"predicted_SO": 4.642,
"predicted_HR": 0.428,
"predicted_ERA": 3.0516,
"predicted_WHIP": 1.2225
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.786,
"final": 2.3135,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.404,
"final": 3.794,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.034,
"final": 1.1502,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.642,
"final": 4.3631,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.428,
"final": 0.242,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0516,
"final": 3.0516,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2225,
"final": 1.2225,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 18,
"H": 46,
"BB": 20,
"SO": 46,
"HR": 3,
"ERA": 3.1153846153846154,
"WHIP": 1.2692307692307692,
"K9": 7.961538461538462,
"HR9": 0.5192307692307693,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.8429518159234443,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "688107",
"player_name": "Robert Gasser",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "MIL",
"games": 159,
"wins": 100,
"losses": 59,
"win_pct": 0.6289,
"runs_scored": 815.0,
"runs_allowed": 608.0,
"run_differential": 207.0,
"run_differential_per_game": 1.3019,
"avg_runs_scored": 5.1258,
"avg_runs_allowed": 3.8239,
"offense_index": 1.1454,
"defense_index": 1.1703,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 2.9,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.3396
},
"opponent": {
"team": "STL",
"games": 159,
"wins": 77,
"losses": 82,
"win_pct": 0.4843,
"runs_scored": 710.0,
"runs_allowed": 732.0,
"run_differential": -22.0,
"run_differential_per_game": -0.1384,
"avg_runs_scored": 4.4654,
"avg_runs_allowed": 4.6038,
"offense_index": 0.9979,
"defense_index": 0.972,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0654
},
"edges": {
"quality_edge": 0.405,
"offense_edge": 0.1454,
"opponent_offense_edge": -0.0021,
"defense_strength": 0.1703,
"opponent_defense_weakness": 0.028,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0214,
"run_prevention": 0.9624,
"strikeout": 1.0123
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "688107",
"profile": {
"available": true,
"pitcher_id": "688107",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 414.0,
"k_percent": 21.3,
"bb_percent": 7.5,
"woba": 0.317,
"xwoba": 0.322,
"sweet_spot_percent": 37.7,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 33.4,
"avg_best_speed": 74.7052,
"avg_hyper_speed": 93.1368,
"whiff_percent": 22.2,
"swing_percent": 49.8
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0705,
"command_and_miss": -0.105,
"regression_edge": -0.1429,
"xwoba_edge": -0.3143,
"barrel_edge": -0.0667,
"hard_hit_edge": 0.6429,
"whiff_edge": -0.4,
"bb_edge": 0.4,
"pitch_design_score": -0.0829
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "688107",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 88.38349307541424,
"release_spin_rate": 2279.059113316552,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 88.38349307541424,
"release_spin_rate": 2279.059113316552,
"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.3835,
"release_spin_rate": 2279.0591,
"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.0829,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5921,
"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.0877,
"sample_weight": 1.0,
"run_prevention_factor": 1.0075,
"strikeout_factor": 0.98,
"walk_factor": 0.968,
"homer_factor": 0.989,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "688107",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0075,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0075,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.989,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.98,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "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/20260925_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_TB@PHI | away | Freddy Peralta | Freddy Peralta | True | 5.2 | 5.1 | -1 | 5 | 0 | -5 | 5/4 | 2/3 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.564154786150713,
"WHIP": 1.3258655804480652,
"IP": 163.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.28,
"recent_avg_IP": 5.733,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1418,
"sample_weight": 1.0,
"run_prevention_factor": 0.9879,
"strikeout_factor": 1.004,
"walk_factor": 0.988,
"homer_factor": 0.9669,
"regression_flag": "neutral",
"k_percent": 21.5,
"bb_percent": 8.5,
"woba": 0.325,
"xwoba": 0.302,
"barrel_percent": 5.9,
"hard_hit_percent": 37.5,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 287,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "642547",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 3.0,
"R": 3.0,
"H": 14.0,
"BB": 6.0,
"SO": 23.0,
"HR": 1.0,
"BF": 107.0,
"Pitches": 430.0
},
"per_game": {
"IP": 5.2,
"ER": 0.6,
"R": 0.6,
"H": 2.8,
"BB": 1.2,
"SO": 4.6,
"HR": 0.2,
"BF": 21.4,
"Pitches": 86.0
},
"rates": {
"ERA": 0.9419,
"WHIP": 0.6977,
"ER_per_IP": 0.10465,
"H_per_IP": 0.48837,
"BB_per_IP": 0.2093,
"SO_per_IP": 0.80233,
"HR_per_IP": 0.03488
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 22.0,
"R": 23.0,
"H": 43.0,
"BB": 14.0,
"SO": 42.0,
"HR": 6.0,
"BF": 216.0,
"Pitches": 866.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.3,
"H": 4.3,
"BB": 1.4,
"SO": 4.2,
"HR": 0.6,
"BF": 21.6,
"Pitches": 86.6
},
"rates": {
"ERA": 3.6667,
"WHIP": 1.0556,
"ER_per_IP": 0.40741,
"H_per_IP": 0.7963,
"BB_per_IP": 0.25926,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.11111
}
},
"season": {
"games": 31,
"totals": {
"IP": 163.2,
"ER": 83.0,
"R": 91.0,
"H": 157.0,
"BB": 60.0,
"SO": 152.0,
"HR": 23.0,
"BF": 708.0,
"Pitches": 2866.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6774,
"R": 2.9355,
"H": 5.0645,
"BB": 1.9355,
"SO": 4.9032,
"HR": 0.7419,
"BF": 22.8387,
"Pitches": 92.4516
},
"rates": {
"ERA": 4.5642,
"WHIP": 1.3259,
"ER_per_IP": 0.50713,
"H_per_IP": 0.95927,
"BB_per_IP": 0.3666,
"SO_per_IP": 0.92872,
"HR_per_IP": 0.14053
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.773,
"predicted_H": 4.028,
"predicted_BB": 1.514,
"predicted_SO": 4.602,
"predicted_HR": 0.506,
"predicted_ERA": 2.8972,
"predicted_WHIP": 1.006
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.773,
"final": 2.6831,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.028,
"final": 4.4252,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.514,
"final": 1.7126,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.602,
"final": 4.7647,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.506,
"final": 0.7079,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8972,
"final": 2.8972,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.006,
"final": 1.006,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 22,
"H": 43,
"BB": 14,
"SO": 42,
"HR": 6,
"ERA": 3.6666666666666665,
"WHIP": 1.0555555555555556,
"K9": 7.0,
"HR9": 1.0,
"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-19T00:00:00"
},
"recent_form_boost": 0.8996291663507947,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "642547",
"player_name": "Freddy Peralta",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "TB",
"games": 159,
"wins": 96,
"losses": 63,
"win_pct": 0.6038,
"runs_scored": 719.0,
"runs_allowed": 642.0,
"run_differential": 77.0,
"run_differential_per_game": 0.4843,
"avg_runs_scored": 4.522,
"avg_runs_allowed": 4.0377,
"offense_index": 1.0105,
"defense_index": 1.1083,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.9,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.1828
},
"opponent": {
"team": "PHI",
"games": 159,
"wins": 87,
"losses": 72,
"win_pct": 0.5472,
"runs_scored": 705.0,
"runs_allowed": 681.0,
"run_differential": 24.0,
"run_differential_per_game": 0.1509,
"avg_runs_scored": 4.434,
"avg_runs_allowed": 4.283,
"offense_index": 0.9908,
"defense_index": 1.0448,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0587
},
"edges": {
"quality_edge": 0.1241,
"offense_edge": 0.0105,
"opponent_offense_edge": -0.0092,
"defense_strength": 0.1083,
"opponent_defense_weakness": -0.0448,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0086,
"run_prevention": 0.9815,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642547",
"profile": {
"available": true,
"pitcher_id": "642547",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 683.0,
"k_percent": 21.5,
"bb_percent": 8.5,
"woba": 0.325,
"xwoba": 0.302,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 37.5,
"avg_best_speed": 76.202,
"avg_hyper_speed": 93.4872,
"whiff_percent": 26.2,
"swing_percent": 47.7
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1134,
"command_and_miss": 0.0579,
"regression_edge": 0.6571,
"xwoba_edge": 0.2571,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.1714,
"bb_edge": 0.15,
"pitch_design_score": -0.0308
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642547",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.31293809090894,
"release_spin_rate": 2298.363391166723,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.31293809090894,
"release_spin_rate": 2298.363391166723,
"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.3129,
"release_spin_rate": 2298.3634,
"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.0308,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2203,
"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.1418,
"sample_weight": 1.0,
"run_prevention_factor": 0.9879,
"strikeout_factor": 1.004,
"walk_factor": 0.988,
"homer_factor": 0.9669,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "642547",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9879,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9879,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.988,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9669,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.004,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
}
],
"provenance": {
"prediction": "output/games/20260925_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_TB@PHI | home | Cristopher Sánchez | Cristopher Sánchez | True | 6.1 | 7.0 | 2 | 3 | 2 | -1 | 7/5 | 3/1 | 6/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.925,
"WHIP": 1.215,
"IP": 200.0,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 6.25,
"recent_avg_IP": 6.333,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4337,
"sample_weight": 1.0,
"run_prevention_factor": 0.9631,
"strikeout_factor": 1.0623,
"walk_factor": 0.924,
"homer_factor": 1.0018,
"regression_flag": "neutral",
"k_percent": 26.6,
"bb_percent": 5.3,
"woba": 0.298,
"xwoba": 0.285,
"barrel_percent": 7.3,
"hard_hit_percent": 41.8,
"whiff_percent": 31.3
},
"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": 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": "650911",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 16.0,
"R": 16.0,
"H": 31.0,
"BB": 6.0,
"SO": 27.0,
"HR": 4.0,
"BF": 129.0,
"Pitches": 476.0
},
"per_game": {
"IP": 6.1,
"ER": 3.2,
"R": 3.2,
"H": 6.2,
"BB": 1.2,
"SO": 5.4,
"HR": 0.8,
"BF": 25.8,
"Pitches": 95.2
},
"rates": {
"ERA": 4.5474,
"WHIP": 1.1684,
"ER_per_IP": 0.50526,
"H_per_IP": 0.97895,
"BB_per_IP": 0.18947,
"SO_per_IP": 0.85263,
"HR_per_IP": 0.12632
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.1,
"ER": 23.0,
"R": 23.0,
"H": 60.0,
"BB": 16.0,
"SO": 64.0,
"HR": 6.0,
"BF": 252.0,
"Pitches": 955.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.3,
"H": 6.0,
"BB": 1.6,
"SO": 6.4,
"HR": 0.6,
"BF": 25.2,
"Pitches": 95.5
},
"rates": {
"ERA": 3.375,
"WHIP": 1.2391,
"ER_per_IP": 0.375,
"H_per_IP": 0.97826,
"BB_per_IP": 0.26087,
"SO_per_IP": 1.04348,
"HR_per_IP": 0.09783
}
},
"season": {
"games": 32,
"totals": {
"IP": 200.0,
"ER": 65.0,
"R": 71.0,
"H": 199.0,
"BB": 44.0,
"SO": 221.0,
"HR": 18.0,
"BF": 830.0,
"Pitches": 3058.0
},
"per_game": {
"IP": 6.1,
"ER": 2.0312,
"R": 2.2188,
"H": 6.2188,
"BB": 1.375,
"SO": 6.9062,
"HR": 0.5625,
"BF": 25.9375,
"Pitches": 95.5625
},
"rates": {
"ERA": 2.925,
"WHIP": 1.215,
"ER_per_IP": 0.325,
"H_per_IP": 0.995,
"BB_per_IP": 0.22,
"SO_per_IP": 1.105,
"HR_per_IP": 0.09
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.715,
"predicted_H": 6.122,
"predicted_BB": 1.507,
"predicted_SO": 6.017,
"predicted_HR": 0.713,
"predicted_ERA": 3.921,
"predicted_WHIP": 1.224
}
},
"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": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.715,
"final": 3.2381,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 6.122,
"final": 6.4794,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.507,
"final": 2.1148,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 6.017,
"final": 3.9747,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.713,
"final": 0.4228,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.921,
"final": 3.921,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.224,
"final": 1.224,
"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": 61.1,
"ER": 23,
"H": 60,
"BB": 16,
"SO": 64,
"HR": 6,
"ERA": 3.3750000000000004,
"WHIP": 1.2391304347826089,
"K9": 9.391304347826088,
"HR9": 0.8804347826086957,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.8714060383314711,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 3.0,
"predicted_SO": 1.0,
"predicted_HR": 0.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": 6.1,
"predicted_ER": 3,
"predicted_H": 7,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650911",
"player_name": "Cristopher S\u00e1nchez",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 159,
"wins": 87,
"losses": 72,
"win_pct": 0.5472,
"runs_scored": 705.0,
"runs_allowed": 681.0,
"run_differential": 24.0,
"run_differential_per_game": 0.1509,
"avg_runs_scored": 4.434,
"avg_runs_allowed": 4.283,
"offense_index": 0.9908,
"defense_index": 1.0448,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0587
},
"opponent": {
"team": "TB",
"games": 159,
"wins": 96,
"losses": 63,
"win_pct": 0.6038,
"runs_scored": 719.0,
"runs_allowed": 642.0,
"run_differential": 77.0,
"run_differential_per_game": 0.4843,
"avg_runs_scored": 4.522,
"avg_runs_allowed": 4.0377,
"offense_index": 1.0105,
"defense_index": 1.1083,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.9,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.1828
},
"edges": {
"quality_edge": -0.1241,
"offense_edge": -0.0092,
"opponent_offense_edge": 0.0105,
"defense_strength": 0.0448,
"opponent_defense_weakness": -0.1083,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.996,
"run_prevention": 1.0034,
"strikeout": 0.9954
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650911",
"profile": {
"available": true,
"pitcher_id": "650911",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 773.0,
"k_percent": 26.6,
"bb_percent": 5.3,
"woba": 0.298,
"xwoba": 0.285,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 41.8,
"avg_best_speed": 78.1003,
"avg_hyper_speed": 94.4801,
"whiff_percent": 31.3,
"swing_percent": 50.3
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3323,
"command_and_miss": 0.8007,
"regression_edge": 0.3714,
"xwoba_edge": 0.7429,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.5571,
"whiff_edge": 0.9,
"bb_edge": 0.95,
"pitch_design_score": 0.0288
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"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": 90.3783652742236,
"release_spin_rate": 2082.1207290628663,
"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": 90.3783652742236,
"release_spin_rate": 2082.1207290628663,
"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.3784,
"release_spin_rate": 2082.1207,
"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.0288,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2059,
"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.4337,
"sample_weight": 1.0,
"run_prevention_factor": 0.9631,
"strikeout_factor": 1.0623,
"walk_factor": 0.924,
"homer_factor": 1.0018,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "650911",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9631,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9631,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0018,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0623,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 29,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260925_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_TEX@MIN | away | Jacob deGrom | Jacob deGrom | True | 5.2 | 4.0 | -5 | 3 | 8 | 5 | 5/8 | 4/3 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.857142857142857,
"WHIP": 1.096638655462185,
"IP": 158.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.289,
"recent_avg_IP": 5.667,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4232,
"sample_weight": 1.0,
"run_prevention_factor": 0.964,
"strikeout_factor": 1.0971,
"walk_factor": 0.952,
"homer_factor": 1.0293,
"regression_flag": "neutral",
"k_percent": 30.4,
"bb_percent": 6.7,
"woba": 0.279,
"xwoba": 0.284,
"barrel_percent": 7.9,
"hard_hit_percent": 44.9,
"whiff_percent": 33.6
},
"espn_rank": {
"rank": 64,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "594798",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 7.0,
"R": 7.0,
"H": 14.0,
"BB": 6.0,
"SO": 37.0,
"HR": 3.0,
"BF": 105.0,
"Pitches": 441.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.4,
"H": 2.8,
"BB": 1.2,
"SO": 7.4,
"HR": 0.6,
"BF": 21.0,
"Pitches": 88.2
},
"rates": {
"ERA": 2.2235,
"WHIP": 0.7059,
"ER_per_IP": 0.24706,
"H_per_IP": 0.49412,
"BB_per_IP": 0.21176,
"SO_per_IP": 1.30588,
"HR_per_IP": 0.10588
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 23.0,
"R": 23.0,
"H": 37.0,
"BB": 19.0,
"SO": 64.0,
"HR": 4.0,
"BF": 199.0,
"Pitches": 854.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3,
"R": 2.3,
"H": 3.7,
"BB": 1.9,
"SO": 6.4,
"HR": 0.4,
"BF": 19.9,
"Pitches": 85.4
},
"rates": {
"ERA": 4.2828,
"WHIP": 1.1586,
"ER_per_IP": 0.47586,
"H_per_IP": 0.76552,
"BB_per_IP": 0.3931,
"SO_per_IP": 1.32414,
"HR_per_IP": 0.08276
}
},
"season": {
"games": 30,
"totals": {
"IP": 158.2,
"ER": 68.0,
"R": 68.0,
"H": 131.0,
"BB": 43.0,
"SO": 196.0,
"HR": 20.0,
"BF": 645.0,
"Pitches": 2646.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2667,
"R": 2.2667,
"H": 4.3667,
"BB": 1.4333,
"SO": 6.5333,
"HR": 0.6667,
"BF": 21.5,
"Pitches": 88.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.0966,
"ER_per_IP": 0.42857,
"H_per_IP": 0.82563,
"BB_per_IP": 0.27101,
"SO_per_IP": 1.23529,
"HR_per_IP": 0.12605
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.043,
"predicted_H": 3.729,
"predicted_BB": 1.593,
"predicted_SO": 6.618,
"predicted_HR": 0.576,
"predicted_ERA": 3.4631,
"predicted_WHIP": 1.0024
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.043,
"final": 2.4357,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.729,
"final": 4.2506,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.593,
"final": 2.5808,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.618,
"final": 7.1851,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.576,
"final": 0.75,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4631,
"final": 3.4631,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0024,
"final": 1.0024,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 23,
"H": 37,
"BB": 19,
"SO": 64,
"HR": 4,
"ERA": 4.282758620689655,
"WHIP": 1.1586206896551723,
"K9": 11.917241379310344,
"HR9": 0.7448275862068965,
"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-20T00:00:00"
},
"recent_form_boost": 0.9715161395308712,
"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": 4.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"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": 4,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "594798",
"player_name": "Jacob deGrom",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 159,
"wins": 79,
"losses": 80,
"win_pct": 0.4969,
"runs_scored": 661.0,
"runs_allowed": 701.0,
"run_differential": -40.0,
"run_differential_per_game": -0.2516,
"avg_runs_scored": 4.1572,
"avg_runs_allowed": 4.4088,
"offense_index": 0.9295,
"defense_index": 1.0144,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.9,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0014
},
"opponent": {
"team": "MIN",
"games": 159,
"wins": 75,
"losses": 84,
"win_pct": 0.4717,
"runs_scored": 721.0,
"runs_allowed": 785.0,
"run_differential": -64.0,
"run_differential_per_game": -0.4025,
"avg_runs_scored": 4.5346,
"avg_runs_allowed": 4.9371,
"offense_index": 1.0139,
"defense_index": 0.9059,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.0,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0736
},
"edges": {
"quality_edge": 0.075,
"offense_edge": -0.0705,
"opponent_offense_edge": 0.0139,
"defense_strength": 0.0144,
"opponent_defense_weakness": 0.0941,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.997,
"strikeout": 1.0011
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "594798",
"profile": {
"available": true,
"pitcher_id": "594798",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 597.0,
"k_percent": 30.4,
"bb_percent": 6.7,
"woba": 0.279,
"xwoba": 0.284,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 44.9,
"avg_best_speed": 80.4112,
"avg_hyper_speed": 94.6142,
"whiff_percent": 33.6,
"swing_percent": 51.6
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2491,
"command_and_miss": 1.09,
"regression_edge": -0.1429,
"xwoba_edge": 0.7714,
"barrel_edge": -0.1556,
"hard_hit_edge": -1.0,
"whiff_edge": 1.2286,
"bb_edge": 0.6,
"pitch_design_score": 0.1824
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "594798",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 93.12098050726556,
"release_spin_rate": 2431.696781055929,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 93.12098050726556,
"release_spin_rate": 2431.696781055929,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.121,
"release_spin_rate": 2431.6968,
"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.1824,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.3029,
"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.4232,
"sample_weight": 1.0,
"run_prevention_factor": 0.964,
"strikeout_factor": 1.0971,
"walk_factor": 0.952,
"homer_factor": 1.0293,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "594798",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.964,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.964,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0293,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0971,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
}
],
"provenance": {
"prediction": "output/games/20260925_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260925 | 20260925_TEX@MIN | home | Joe Ryan | Joe Ryan | True | 5.0 | 6.0 | 3 | 4 | 2 | -2 | 4/4 | 3/1 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8293269230769234,
"WHIP": 1.1754807692307694,
"IP": 138.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.333,
"recent_avg_IP": 4.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.152,
"sample_weight": 1.0,
"run_prevention_factor": 0.9871,
"strikeout_factor": 1.0257,
"walk_factor": 0.92,
"homer_factor": 1.0558,
"regression_flag": "neutral",
"k_percent": 25.7,
"bb_percent": 5.1,
"woba": 0.312,
"xwoba": 0.298,
"barrel_percent": 10.1,
"hard_hit_percent": 40.6,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 104,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "657746",
"report_date": "20260925",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 16.0,
"R": 18.0,
"H": 32.0,
"BB": 5.0,
"SO": 20.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 441.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.6,
"H": 6.4,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 23.2,
"Pitches": 88.2
},
"rates": {
"ERA": 5.9178,
"WHIP": 1.5205,
"ER_per_IP": 0.65753,
"H_per_IP": 1.31507,
"BB_per_IP": 0.20548,
"SO_per_IP": 0.82192,
"HR_per_IP": 0.20548
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 30.0,
"R": 38.0,
"H": 64.0,
"BB": 12.0,
"SO": 52.0,
"HR": 13.0,
"BF": 236.0,
"Pitches": 908.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.8,
"H": 6.4,
"BB": 1.2,
"SO": 5.2,
"HR": 1.3,
"BF": 23.6,
"Pitches": 90.8
},
"rates": {
"ERA": 5.2597,
"WHIP": 1.4805,
"ER_per_IP": 0.58442,
"H_per_IP": 1.24675,
"BB_per_IP": 0.23377,
"SO_per_IP": 1.01299,
"HR_per_IP": 0.25325
}
},
"season": {
"games": 26,
"totals": {
"IP": 138.2,
"ER": 59.0,
"R": 72.0,
"H": 133.0,
"BB": 30.0,
"SO": 151.0,
"HR": 21.0,
"BF": 588.0,
"Pitches": 2338.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2692,
"R": 2.7692,
"H": 5.1154,
"BB": 1.1538,
"SO": 5.8077,
"HR": 0.8077,
"BF": 22.6154,
"Pitches": 89.9231
},
"rates": {
"ERA": 3.8293,
"WHIP": 1.1755,
"ER_per_IP": 0.42548,
"H_per_IP": 0.95913,
"BB_per_IP": 0.21635,
"SO_per_IP": 1.08894,
"HR_per_IP": 0.15144
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.901,
"predicted_H": 5.976,
"predicted_BB": 1.231,
"predicted_SO": 4.759,
"predicted_HR": 1.018,
"predicted_ERA": 5.1642,
"predicted_WHIP": 1.4253
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.901,
"final": 3.3605,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.976,
"final": 5.1497,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.231,
"final": 1.9707,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.759,
"final": 4.8598,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.018,
"final": 1.0105,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1642,
"final": 5.1642,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4253,
"final": 1.4253,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 30,
"H": 64,
"BB": 12,
"SO": 52,
"HR": 13,
"ERA": 5.25974025974026,
"WHIP": 1.4805194805194806,
"K9": 9.116883116883118,
"HR9": 2.2792207792207795,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.089474043695672,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "657746",
"player_name": "Joe Ryan",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 159,
"wins": 75,
"losses": 84,
"win_pct": 0.4717,
"runs_scored": 721.0,
"runs_allowed": 785.0,
"run_differential": -64.0,
"run_differential_per_game": -0.4025,
"avg_runs_scored": 4.5346,
"avg_runs_allowed": 4.9371,
"offense_index": 1.0139,
"defense_index": 0.9059,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.0,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0736
},
"opponent": {
"team": "TEX",
"games": 159,
"wins": 79,
"losses": 80,
"win_pct": 0.4969,
"runs_scored": 661.0,
"runs_allowed": 701.0,
"run_differential": -40.0,
"run_differential_per_game": -0.2516,
"avg_runs_scored": 4.1572,
"avg_runs_allowed": 4.4088,
"offense_index": 0.9295,
"defense_index": 1.0144,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.9,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0014
},
"edges": {
"quality_edge": -0.075,
"offense_edge": 0.0139,
"opponent_offense_edge": -0.0705,
"defense_strength": -0.0941,
"opponent_defense_weakness": -0.0144,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.997,
"run_prevention": 1.0019,
"strikeout": 1.0034
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "657746",
"profile": {
"available": true,
"pitcher_id": "657746",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 542.0,
"k_percent": 25.7,
"bb_percent": 5.1,
"woba": 0.312,
"xwoba": 0.298,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 40.6,
"avg_best_speed": 78.4652,
"avg_hyper_speed": 94.3183,
"whiff_percent": 25.8,
"swing_percent": 50.0
},
"league_medians": {
"pa": 135.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0113,
"command_and_miss": 0.4779,
"regression_edge": 0.4,
"xwoba_edge": 0.3714,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.3857,
"whiff_edge": 0.1143,
"bb_edge": 1.0,
"pitch_design_score": -0.0731
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657746",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 88.55760817104789,
"release_spin_rate": 2384.6802222056413,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 88.55760817104789,
"release_spin_rate": 2384.6802222056413,
"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.5576,
"release_spin_rate": 2384.6802,
"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.0731,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5224,
"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.152,
"sample_weight": 1.0,
"run_prevention_factor": 0.9871,
"strikeout_factor": 1.0257,
"walk_factor": 0.92,
"homer_factor": 1.0558,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "657746",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9871,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9871,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0558,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0257,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260925_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_ARI@SD | away | Taylor Clarke | Taylor Clarke | True | 6.0 | 0.2 | -16 | 1 | 1 | 0 | 2/3 | 3/0 | 6/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.598930481283422,
"WHIP": 0.8823529411764706,
"IP": 62.1,
"games_started": null,
"games_pitched": 62,
"role_avg_IP": 1.005,
"recent_avg_IP": 1.067,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1617,
"sample_weight": 0.912,
"run_prevention_factor": 1.0137,
"strikeout_factor": 0.9547,
"walk_factor": 0.9252,
"homer_factor": 1.0196,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.0,
"bb_percent": 5.0,
"woba": 0.264,
"xwoba": 0.322,
"barrel_percent": 9.1,
"hard_hit_percent": 34.1,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 151,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 62.1,
"season_ERA": 2.599,
"season_WHIP": 0.882,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.781,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "664199",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 62,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 1.0,
"SO": 5.0,
"HR": 2.0,
"BF": 20.0,
"Pitches": 76.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.2,
"SO": 1.0,
"HR": 0.4,
"BF": 4.0,
"Pitches": 15.2
},
"rates": {
"ERA": 5.0625,
"WHIP": 0.9375,
"ER_per_IP": 0.5625,
"H_per_IP": 0.75,
"BB_per_IP": 0.1875,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 5.0,
"R": 5.0,
"H": 8.0,
"BB": 2.0,
"SO": 9.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 143.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.8,
"BB": 0.2,
"SO": 0.9,
"HR": 0.2,
"BF": 3.8,
"Pitches": 14.3
},
"rates": {
"ERA": 4.5,
"WHIP": 1.0,
"ER_per_IP": 0.5,
"H_per_IP": 0.8,
"BB_per_IP": 0.2,
"SO_per_IP": 0.9,
"HR_per_IP": 0.2
}
},
"season": {
"games": 62,
"totals": {
"IP": 62.1,
"ER": 18.0,
"R": 21.0,
"H": 44.0,
"BB": 11.0,
"SO": 37.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 883.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2903,
"R": 0.3387,
"H": 0.7097,
"BB": 0.1774,
"SO": 0.5968,
"HR": 0.0968,
"BF": 3.8387,
"Pitches": 14.2419
},
"rates": {
"ERA": 2.5989,
"WHIP": 0.8824,
"ER_per_IP": 0.28877,
"H_per_IP": 0.70588,
"BB_per_IP": 0.17647,
"SO_per_IP": 0.59358,
"HR_per_IP": 0.09626
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.188,
"predicted_H": 1.977,
"predicted_BB": 0.585,
"predicted_SO": 2.113,
"predicted_HR": 0.547,
"predicted_ERA": 4.443,
"predicted_WHIP": 1.0649
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4688,
"form_weight": 0.5312,
"form_reliability": 0.7188,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.781,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.188,
"final": 1.0999,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 1.977,
"final": 1.9878,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.585,
"final": 1.7172,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.113,
"final": 3.9353,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.547,
"final": 0.2906,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.443,
"final": 4.443,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0649,
"final": 1.0649,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 5,
"H": 8,
"BB": 2,
"SO": 9,
"HR": 2,
"ERA": 4.5,
"WHIP": 1.0,
"K9": 8.1,
"HR9": 1.8,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.9970322928826013,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.781,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664199",
"player_name": "Taylor Clarke",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "ARI",
"games": 160,
"wins": 86,
"losses": 74,
"win_pct": 0.5375,
"runs_scored": 728.0,
"runs_allowed": 711.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1062,
"avg_runs_scored": 4.55,
"avg_runs_allowed": 4.4437,
"offense_index": 1.0144,
"defense_index": 1.0093,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.8,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1149
},
"opponent": {
"team": "SD",
"games": 160,
"wins": 89,
"losses": 71,
"win_pct": 0.5563,
"runs_scored": 703.0,
"runs_allowed": 670.0,
"run_differential": 33.0,
"run_differential_per_game": 0.2062,
"avg_runs_scored": 4.3937,
"avg_runs_allowed": 4.1875,
"offense_index": 0.9796,
"defense_index": 1.0711,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1431
},
"edges": {
"quality_edge": -0.0282,
"offense_edge": 0.0144,
"opponent_offense_edge": -0.0204,
"defense_strength": 0.0093,
"opponent_defense_weakness": -0.0711,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0,
"run_prevention": 0.9972,
"strikeout": 1.0008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664199",
"profile": {
"available": true,
"pitcher_id": "664199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 228.0,
"k_percent": 16.0,
"bb_percent": 5.0,
"woba": 0.264,
"xwoba": 0.322,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 34.1,
"avg_best_speed": 76.0809,
"avg_hyper_speed": 93.5635,
"whiff_percent": 22.5,
"swing_percent": 49.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1127,
"command_and_miss": -0.3157,
"regression_edge": -1.6571,
"xwoba_edge": -0.3143,
"barrel_edge": -0.4222,
"hard_hit_edge": 0.5429,
"whiff_edge": -0.3857,
"bb_edge": 1.025,
"pitch_design_score": 0.0927
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664199",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 15,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 15,
"pitch_usage": 0.0,
"release_speed": 91.51984764546245,
"release_spin_rate": 2087.327565588381,
"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": 15,
"pitch_usage": 0.0,
"release_speed": 91.51984764546245,
"release_spin_rate": 2087.327565588381,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.5198,
"release_spin_rate": 2087.3276,
"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.0927,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.6623,
"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.1617,
"sample_weight": 0.912,
"run_prevention_factor": 1.0137,
"strikeout_factor": 0.9547,
"walk_factor": 0.9252,
"homer_factor": 1.0196,
"woba_minus_xwoba": -0.058,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "664199",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0125,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0125,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9318,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0179,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9587,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -16 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260926_ARI@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"
}
} |
| 20260926 | 20260926_ARI@SD | home | Walker Buehler | Walker Buehler | True | 4.2 | 3.2 | -3 | 5 | 3 | -2 | 5/5 | 2/1 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.56,
"WHIP": 1.34,
"IP": 150.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 4.839,
"recent_avg_IP": 4.733,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1552,
"sample_weight": 1.0,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.9571,
"walk_factor": 0.994,
"homer_factor": 1.0293,
"regression_flag": "neutral",
"k_percent": 20.2,
"bb_percent": 8.8,
"woba": 0.327,
"xwoba": 0.315,
"barrel_percent": 8.4,
"hard_hit_percent": 38.7,
"whiff_percent": 19.5
},
"espn_rank": {
"rank": 189,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "621111",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 11.0,
"R": 11.0,
"H": 23.0,
"BB": 7.0,
"SO": 20.0,
"HR": 6.0,
"BF": 95.0,
"Pitches": 388.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.2,
"H": 4.6,
"BB": 1.4,
"SO": 4.0,
"HR": 1.2,
"BF": 19.0,
"Pitches": 77.6
},
"rates": {
"ERA": 4.1831,
"WHIP": 1.2676,
"ER_per_IP": 0.46479,
"H_per_IP": 0.97183,
"BB_per_IP": 0.29577,
"SO_per_IP": 0.84507,
"HR_per_IP": 0.25352
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 19.0,
"R": 19.0,
"H": 46.0,
"BB": 14.0,
"SO": 37.0,
"HR": 8.0,
"BF": 199.0,
"Pitches": 813.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 1.9,
"H": 4.6,
"BB": 1.4,
"SO": 3.7,
"HR": 0.8,
"BF": 19.9,
"Pitches": 81.3
},
"rates": {
"ERA": 3.42,
"WHIP": 1.2,
"ER_per_IP": 0.38,
"H_per_IP": 0.92,
"BB_per_IP": 0.28,
"SO_per_IP": 0.74,
"HR_per_IP": 0.16
}
},
"season": {
"games": 31,
"totals": {
"IP": 150.0,
"ER": 76.0,
"R": 77.0,
"H": 145.0,
"BB": 56.0,
"SO": 128.0,
"HR": 21.0,
"BF": 633.0,
"Pitches": 2535.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4516,
"R": 2.4839,
"H": 4.6774,
"BB": 1.8065,
"SO": 4.129,
"HR": 0.6774,
"BF": 20.4194,
"Pitches": 81.7742
},
"rates": {
"ERA": 4.56,
"WHIP": 1.34,
"ER_per_IP": 0.50667,
"H_per_IP": 0.96667,
"BB_per_IP": 0.37333,
"SO_per_IP": 0.85333,
"HR_per_IP": 0.14
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.187,
"predicted_H": 4.617,
"predicted_BB": 1.525,
"predicted_SO": 3.992,
"predicted_HR": 0.923,
"predicted_ERA": 4.079,
"predicted_WHIP": 1.2729
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.187,
"final": 3.3366,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.617,
"final": 4.7735,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.525,
"final": 1.7191,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.992,
"final": 4.404,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.923,
"final": 0.5458,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.079,
"final": 4.079,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2729,
"final": 1.2729,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.0,
"ER": 19,
"H": 46,
"BB": 14,
"SO": 37,
"HR": 8,
"ERA": 3.4199999999999995,
"WHIP": 1.1999999999999997,
"K9": 6.659999999999999,
"HR9": 1.4399999999999997,
"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-20T00:00:00"
},
"recent_form_boost": 0.8745925292968749,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "621111",
"player_name": "Walker Buehler",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 160,
"wins": 89,
"losses": 71,
"win_pct": 0.5563,
"runs_scored": 703.0,
"runs_allowed": 670.0,
"run_differential": 33.0,
"run_differential_per_game": 0.2062,
"avg_runs_scored": 4.3937,
"avg_runs_allowed": 4.1875,
"offense_index": 0.9796,
"defense_index": 1.0711,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1431
},
"opponent": {
"team": "ARI",
"games": 160,
"wins": 86,
"losses": 74,
"win_pct": 0.5375,
"runs_scored": 728.0,
"runs_allowed": 711.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1062,
"avg_runs_scored": 4.55,
"avg_runs_allowed": 4.4437,
"offense_index": 1.0144,
"defense_index": 1.0093,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.8,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1149
},
"edges": {
"quality_edge": 0.0282,
"offense_edge": -0.0204,
"opponent_offense_edge": 0.0144,
"defense_strength": 0.0711,
"opponent_defense_weakness": -0.0093,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0027,
"run_prevention": 0.9938,
"strikeout": 0.9997
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621111",
"profile": {
"available": true,
"pitcher_id": "621111",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 583.0,
"k_percent": 20.2,
"bb_percent": 8.8,
"woba": 0.327,
"xwoba": 0.315,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 38.7,
"avg_best_speed": 79.0476,
"avg_hyper_speed": 94.091,
"whiff_percent": 19.5,
"swing_percent": 45.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1591,
"command_and_miss": -0.3857,
"regression_edge": 0.3429,
"xwoba_edge": -0.1143,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.1143,
"whiff_edge": -0.8143,
"bb_edge": 0.075,
"pitch_design_score": -0.0012
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621111",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.84218390169383,
"release_spin_rate": 2199.080983688629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.84218390169383,
"release_spin_rate": 2199.080983688629,
"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.8422,
"release_spin_rate": 2199.081,
"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.0012,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0088,
"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.1552,
"sample_weight": 1.0,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.9571,
"walk_factor": 0.994,
"homer_factor": 1.0293,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "621111",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0132,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0132,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.994,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0293,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9571,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260926_ARI@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"
}
} |
| 20260926 | 20260926_ATL@MIA | away | Brent Suter | Brent Suter | True | 5.0 | 3.0 | -6 | 4 | 0 | -4 | 4/1 | 3/0 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.477272727272727,
"WHIP": 1.25,
"IP": 88.0,
"games_started": null,
"games_pitched": 53,
"role_avg_IP": 1.889,
"recent_avg_IP": 1.889,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1037,
"sample_weight": 1.0,
"run_prevention_factor": 0.9912,
"strikeout_factor": 0.9794,
"walk_factor": 0.96,
"homer_factor": 0.9359,
"regression_flag": "neutral",
"k_percent": 20.4,
"bb_percent": 7.1,
"woba": 0.311,
"xwoba": 0.307,
"barrel_percent": 6.1,
"hard_hit_percent": 30.7,
"whiff_percent": 23.2
},
"espn_rank": {
"rank": 235,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 88.0,
"season_ERA": 3.477,
"season_WHIP": 1.25,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.044,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.783,
"prior_weight": 0.217
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608718",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 53,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.1,
"ER": 1.0,
"R": 2.0,
"H": 5.0,
"BB": 2.0,
"SO": 7.0,
"HR": 1.0,
"BF": 32.0,
"Pitches": 119.0
},
"per_game": {
"IP": 1.2,
"ER": 0.2,
"R": 0.4,
"H": 1.0,
"BB": 0.4,
"SO": 1.4,
"HR": 0.2,
"BF": 6.4,
"Pitches": 23.8
},
"rates": {
"ERA": 1.08,
"WHIP": 0.84,
"ER_per_IP": 0.12,
"H_per_IP": 0.6,
"BB_per_IP": 0.24,
"SO_per_IP": 0.84,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.2,
"ER": 4.0,
"R": 6.0,
"H": 17.0,
"BB": 6.0,
"SO": 16.0,
"HR": 2.0,
"BF": 81.0,
"Pitches": 298.0
},
"per_game": {
"IP": 2.0,
"ER": 0.4,
"R": 0.6,
"H": 1.7,
"BB": 0.6,
"SO": 1.6,
"HR": 0.2,
"BF": 8.1,
"Pitches": 29.8
},
"rates": {
"ERA": 1.8305,
"WHIP": 1.1695,
"ER_per_IP": 0.20339,
"H_per_IP": 0.86441,
"BB_per_IP": 0.30508,
"SO_per_IP": 0.81356,
"HR_per_IP": 0.10169
}
},
"season": {
"games": 53,
"totals": {
"IP": 88.0,
"ER": 34.0,
"R": 42.0,
"H": 85.0,
"BB": 25.0,
"SO": 75.0,
"HR": 9.0,
"BF": 366.0,
"Pitches": 1483.0
},
"per_game": {
"IP": 1.2,
"ER": 0.6415,
"R": 0.7925,
"H": 1.6038,
"BB": 0.4717,
"SO": 1.4151,
"HR": 0.1698,
"BF": 6.9057,
"Pitches": 27.9811
},
"rates": {
"ERA": 3.4773,
"WHIP": 1.25,
"ER_per_IP": 0.38636,
"H_per_IP": 0.96591,
"BB_per_IP": 0.28409,
"SO_per_IP": 0.85227,
"HR_per_IP": 0.10227
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.67,
"predicted_H": 2.017,
"predicted_BB": 0.732,
"predicted_SO": 2.123,
"predicted_HR": 0.294,
"predicted_ERA": 2.4297,
"predicted_WHIP": 1.108
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4417,
"form_weight": 0.5583,
"form_reliability": 0.783,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.044,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.783,
"prior_weight": 0.217
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 2.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 0.67,
"final": 2.1408,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.017,
"final": 2.8929,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.732,
"final": 1.7337,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 2.123,
"final": 2.5104,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.294,
"final": 0.1641,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4297,
"final": 2.4297,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.108,
"final": 1.108,
"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": 19.2,
"ER": 4,
"H": 17,
"BB": 6,
"SO": 16,
"HR": 2,
"ERA": 1.8305084745762714,
"WHIP": 1.169491525423729,
"K9": 7.322033898305086,
"HR9": 0.9152542372881357,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.8001610611478487,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.044,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.783,
"prior_weight": 0.217
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608718",
"player_name": "Brent Suter",
"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": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 160,
"wins": 93,
"losses": 67,
"win_pct": 0.5813,
"runs_scored": 731.0,
"runs_allowed": 618.0,
"run_differential": 113.0,
"run_differential_per_game": 0.7063,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 3.8625,
"offense_index": 1.0187,
"defense_index": 1.1611,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.1,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1557
},
"opponent": {
"team": "MIA",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 707.0,
"runs_allowed": 701.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.4188,
"avg_runs_allowed": 4.3812,
"offense_index": 0.9853,
"defense_index": 1.0236,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.0007
},
"edges": {
"quality_edge": 0.1564,
"offense_edge": 0.0187,
"opponent_offense_edge": -0.0147,
"defense_strength": 0.1611,
"opponent_defense_weakness": -0.0236,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0117,
"run_prevention": 0.9737,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608718",
"profile": {
"available": true,
"pitcher_id": "608718",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 354.0,
"k_percent": 20.4,
"bb_percent": 7.1,
"woba": 0.311,
"xwoba": 0.307,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 30.7,
"avg_best_speed": 75.0643,
"avg_hyper_speed": 93.0597,
"whiff_percent": 23.2,
"swing_percent": 46.6
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2525,
"command_and_miss": -0.1029,
"regression_edge": 0.1143,
"xwoba_edge": 0.1143,
"barrel_edge": 0.2444,
"hard_hit_edge": 1.0286,
"whiff_edge": -0.2857,
"bb_edge": 0.5,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608718",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 31,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 31,
"pitch_usage": 0.0,
"release_speed": 83.683563781104,
"release_spin_rate": 1995.2177753340202,
"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": 31,
"pitch_usage": 0.0,
"release_speed": 83.683563781104,
"release_spin_rate": 1995.2177753340202,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 83.6836,
"release_spin_rate": 1995.2178,
"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.1037,
"sample_weight": 1.0,
"run_prevention_factor": 0.9912,
"strikeout_factor": 0.9794,
"walk_factor": 0.96,
"homer_factor": 0.9359,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608718",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9912,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9912,
"adjusted": 4
},
"predicted_BB": {
"original": 5.0,
"factor": 0.96,
"adjusted": 5
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9359,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9794,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260926_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_ATL@MIA | home | Jack Ralston | Jack Ralston | True | 5.0 | 1.1 | -11 | 3 | 3 | 0 | 5/3 | 0/1 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.5,
"WHIP": 1.25,
"IP": 16.0,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 1.067,
"recent_avg_IP": 1.133,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0458,
"sample_weight": 0.45,
"run_prevention_factor": 1.0039,
"strikeout_factor": 0.9907,
"walk_factor": 1.0225,
"homer_factor": 1.0409,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 11.6,
"woba": 0.329,
"xwoba": 0.315,
"barrel_percent": 11.6,
"hard_hit_percent": 39.5,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 388,
"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": 3.281,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3962,
"prior_weight": 0.6038
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "667652",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.2,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 3.0,
"SO": 8.0,
"HR": 3.0,
"BF": 26.0,
"Pitches": 103.0
},
"per_game": {
"IP": 1.0,
"ER": 0.8,
"R": 0.8,
"H": 1.0,
"BB": 0.6,
"SO": 1.6,
"HR": 0.6,
"BF": 5.2,
"Pitches": 20.6
},
"rates": {
"ERA": 6.3529,
"WHIP": 1.4118,
"ER_per_IP": 0.70588,
"H_per_IP": 0.88235,
"BB_per_IP": 0.52941,
"SO_per_IP": 1.41176,
"HR_per_IP": 0.52941
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 7.0,
"R": 7.0,
"H": 8.0,
"BB": 8.0,
"SO": 13.0,
"HR": 3.0,
"BF": 47.0,
"Pitches": 191.0
},
"per_game": {
"IP": 1.0,
"ER": 0.7,
"R": 0.7,
"H": 0.8,
"BB": 0.8,
"SO": 1.3,
"HR": 0.3,
"BF": 4.7,
"Pitches": 19.1
},
"rates": {
"ERA": 6.3,
"WHIP": 1.6,
"ER_per_IP": 0.7,
"H_per_IP": 0.8,
"BB_per_IP": 0.8,
"SO_per_IP": 1.3,
"HR_per_IP": 0.3
}
},
"season": {
"games": 15,
"totals": {
"IP": 16.0,
"ER": 8.0,
"R": 8.0,
"H": 12.0,
"BB": 8.0,
"SO": 17.0,
"HR": 4.0,
"BF": 69.0,
"Pitches": 278.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5333,
"R": 0.5333,
"H": 0.8,
"BB": 0.5333,
"SO": 1.1333,
"HR": 0.2667,
"BF": 4.6,
"Pitches": 18.5333
},
"rates": {
"ERA": 4.5,
"WHIP": 1.25,
"ER_per_IP": 0.5,
"H_per_IP": 0.75,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0625,
"HR_per_IP": 0.25
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.61,
"predicted_H": 2.59,
"predicted_BB": 1.333,
"predicted_SO": 3.04,
"predicted_HR": 0.69,
"predicted_ERA": 5.1537,
"predicted_WHIP": 1.3955
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6051,
"form_weight": 0.3949,
"form_reliability": 0.3962,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.281,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3962,
"prior_weight": 0.6038
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 2.2,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.61,
"final": 2.4511,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.59,
"final": 4.0483,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.333,
"final": 0.5264,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.04,
"final": 4.226,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.69,
"final": 1.4827,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1537,
"final": 5.1537,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3955,
"final": 1.3955,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 7,
"H": 8,
"BB": 8,
"SO": 13,
"HR": 3,
"ERA": 6.3,
"WHIP": 1.6,
"K9": 11.7,
"HR9": 2.7,
"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-24T00:00:00"
},
"recent_form_boost": 1.0694968924919763,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.281,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3962,
"prior_weight": 0.6038
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "667652",
"player_name": "Jack Ralston",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 707.0,
"runs_allowed": 701.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.4188,
"avg_runs_allowed": 4.3812,
"offense_index": 0.9853,
"defense_index": 1.0236,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.0007
},
"opponent": {
"team": "ATL",
"games": 160,
"wins": 93,
"losses": 67,
"win_pct": 0.5813,
"runs_scored": 731.0,
"runs_allowed": 618.0,
"run_differential": 113.0,
"run_differential_per_game": 0.7063,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 3.8625,
"offense_index": 1.0187,
"defense_index": 1.1611,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.1,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1557
},
"edges": {
"quality_edge": -0.1564,
"offense_edge": -0.0147,
"opponent_offense_edge": 0.0187,
"defense_strength": 0.0236,
"opponent_defense_weakness": -0.1611,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9937,
"run_prevention": 1.0085,
"strikeout": 0.9938
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "667652",
"profile": {
"available": true,
"pitcher_id": "667652",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 51.0,
"k_percent": 24.6,
"bb_percent": 11.6,
"woba": 0.329,
"xwoba": 0.315,
"sweet_spot_percent": 23.3,
"barrel_batted_rate": 11.6,
"hard_hit_percent": 39.5,
"avg_best_speed": 74.8589,
"avg_hyper_speed": 94.2846,
"whiff_percent": 19.0,
"swing_percent": 37.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0902,
"command_and_miss": -0.2679,
"regression_edge": 0.4,
"xwoba_edge": -0.1143,
"barrel_edge": -0.9778,
"hard_hit_edge": -0.2286,
"whiff_edge": -0.8857,
"bb_edge": -0.625,
"pitch_design_score": -0.2697
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "667652",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 85.04813955680808,
"release_spin_rate": 1401.1758449434726,
"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": 19,
"pitch_usage": 0.0,
"release_speed": 85.04813955680808,
"release_spin_rate": 1401.1758449434726,
"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.0481,
"release_spin_rate": 1401.1758,
"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.2697,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9264,
"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.0458,
"sample_weight": 0.45,
"run_prevention_factor": 1.0039,
"strikeout_factor": 0.9907,
"walk_factor": 1.0225,
"homer_factor": 1.0409,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "667652",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0018,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0018,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0101,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0184,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9958,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 82,
"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 -11 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CIN@TOR | away | Rhett Lowder | Rhett Lowder | True | 4.0 | 6.0 | 6 | 4 | 0 | -4 | 6/3 | 1/2 | 2/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.007853403141361,
"WHIP": 1.5549738219895288,
"IP": 127.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.813,
"recent_avg_IP": 4.067,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6685,
"sample_weight": 1.0,
"run_prevention_factor": 1.0568,
"strikeout_factor": 0.9383,
"walk_factor": 1.004,
"homer_factor": 1.0938,
"regression_flag": "neutral",
"k_percent": 17.4,
"bb_percent": 9.3,
"woba": 0.354,
"xwoba": 0.355,
"barrel_percent": 10.0,
"hard_hit_percent": 39.0,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 750,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695076",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 24.0,
"R": 25.0,
"H": 30.0,
"BB": 11.0,
"SO": 18.0,
"HR": 3.0,
"BF": 103.0,
"Pitches": 423.0
},
"per_game": {
"IP": 4.0,
"ER": 4.8,
"R": 5.0,
"H": 6.0,
"BB": 2.2,
"SO": 3.6,
"HR": 0.6,
"BF": 20.6,
"Pitches": 84.6
},
"rates": {
"ERA": 10.623,
"WHIP": 2.0164,
"ER_per_IP": 1.18033,
"H_per_IP": 1.47541,
"BB_per_IP": 0.54098,
"SO_per_IP": 0.88525,
"HR_per_IP": 0.14754
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 37.0,
"R": 39.0,
"H": 60.0,
"BB": 17.0,
"SO": 36.0,
"HR": 9.0,
"BF": 228.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.0,
"ER": 3.7,
"R": 3.9,
"H": 6.0,
"BB": 1.7,
"SO": 3.6,
"HR": 0.9,
"BF": 22.8,
"Pitches": 89.3
},
"rates": {
"ERA": 6.6159,
"WHIP": 1.5298,
"ER_per_IP": 0.7351,
"H_per_IP": 1.19205,
"BB_per_IP": 0.33775,
"SO_per_IP": 0.71523,
"HR_per_IP": 0.17881
}
},
"season": {
"games": 28,
"totals": {
"IP": 127.1,
"ER": 85.0,
"R": 88.0,
"H": 144.0,
"BB": 54.0,
"SO": 101.0,
"HR": 18.0,
"BF": 581.0,
"Pitches": 2217.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0357,
"R": 3.1429,
"H": 5.1429,
"BB": 1.9286,
"SO": 3.6071,
"HR": 0.6429,
"BF": 20.75,
"Pitches": 79.1786
},
"rates": {
"ERA": 6.0079,
"WHIP": 1.555,
"ER_per_IP": 0.66754,
"H_per_IP": 1.13089,
"BB_per_IP": 0.42408,
"SO_per_IP": 0.79319,
"HR_per_IP": 0.14136
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.836,
"predicted_H": 5.612,
"predicted_BB": 1.946,
"predicted_SO": 3.688,
"predicted_HR": 0.696,
"predicted_ERA": 7.7407,
"predicted_WHIP": 1.6946
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.836,
"final": 3.4899,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.612,
"final": 5.3586,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.946,
"final": 1.5543,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.688,
"final": 2.9892,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.696,
"final": 0.8219,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.7407,
"final": 7.7407,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6946,
"final": 1.6946,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 37,
"H": 60,
"BB": 17,
"SO": 36,
"HR": 9,
"ERA": 6.615894039735099,
"WHIP": 1.529801324503311,
"K9": 6.437086092715232,
"HR9": 1.609271523178808,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.2423756418796563,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695076",
"player_name": "Rhett Lowder",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 660.0,
"runs_allowed": 820.0,
"run_differential": -160.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.125,
"avg_runs_allowed": 5.125,
"offense_index": 0.9197,
"defense_index": 0.8752,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1895
},
"opponent": {
"team": "TOR",
"games": 160,
"wins": 78,
"losses": 82,
"win_pct": 0.4875,
"runs_scored": 642.0,
"runs_allowed": 688.0,
"run_differential": -46.0,
"run_differential_per_game": -0.2875,
"avg_runs_scored": 4.0125,
"avg_runs_allowed": 4.3,
"offense_index": 0.8946,
"defense_index": 1.0431,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.9,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1159
},
"edges": {
"quality_edge": -0.0736,
"offense_edge": -0.0803,
"opponent_offense_edge": -0.1054,
"defense_strength": -0.1248,
"opponent_defense_weakness": -0.0431,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9975,
"run_prevention": 0.9993,
"strikeout": 1.0062
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695076",
"profile": {
"available": true,
"pitcher_id": "695076",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 530.0,
"k_percent": 17.4,
"bb_percent": 9.3,
"woba": 0.354,
"xwoba": 0.355,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 39.0,
"avg_best_speed": 80.257,
"avg_hyper_speed": 94.3528,
"whiff_percent": 19.0,
"swing_percent": 44.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8986,
"command_and_miss": -0.6157,
"regression_edge": -0.0286,
"xwoba_edge": -1.2571,
"barrel_edge": -0.6222,
"hard_hit_edge": -0.1571,
"whiff_edge": -0.8857,
"bb_edge": -0.05,
"pitch_design_score": -0.0296
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695076",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.33470320650996,
"release_spin_rate": 2351.7989851419666,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.33470320650996,
"release_spin_rate": 2351.7989851419666,
"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.3347,
"release_spin_rate": 2351.799,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0296,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2118,
"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.6685,
"sample_weight": 1.0,
"run_prevention_factor": 1.0568,
"strikeout_factor": 0.9383,
"walk_factor": 1.004,
"homer_factor": 1.0938,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "695076",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0568,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0568,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.004,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0938,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9383,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 72,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260926_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CIN@TOR | home | Trey Yesavage | Trey Yesavage | True | 5.0 | 2.0 | -9 | 3 | 1 | -2 | 4/2 | 2/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6689895470383274,
"WHIP": 1.1289198606271778,
"IP": 95.2,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.035,
"recent_avg_IP": 4.133,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3242,
"sample_weight": 1.0,
"run_prevention_factor": 0.9724,
"strikeout_factor": 1.0389,
"walk_factor": 1.052,
"homer_factor": 0.9398,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 11.7,
"woba": 0.28,
"xwoba": 0.284,
"barrel_percent": 6.4,
"hard_hit_percent": 33.9,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 85,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702056",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 7.0,
"SO": 25.0,
"HR": 4.0,
"BF": 82.0,
"Pitches": 352.0
},
"per_game": {
"IP": 4.0,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 1.4,
"SO": 5.0,
"HR": 0.8,
"BF": 16.4,
"Pitches": 70.4
},
"rates": {
"ERA": 3.4839,
"WHIP": 1.0161,
"ER_per_IP": 0.3871,
"H_per_IP": 0.67742,
"BB_per_IP": 0.33871,
"SO_per_IP": 1.20968,
"HR_per_IP": 0.19355
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 19.0,
"R": 20.0,
"H": 27.0,
"BB": 21.0,
"SO": 47.0,
"HR": 8.0,
"BF": 195.0,
"Pitches": 801.0
},
"per_game": {
"IP": 4.2,
"ER": 1.9,
"R": 2.0,
"H": 2.7,
"BB": 2.1,
"SO": 4.7,
"HR": 0.8,
"BF": 19.5,
"Pitches": 80.1
},
"rates": {
"ERA": 3.5625,
"WHIP": 1.0,
"ER_per_IP": 0.39583,
"H_per_IP": 0.5625,
"BB_per_IP": 0.4375,
"SO_per_IP": 0.97917,
"HR_per_IP": 0.16667
}
},
"season": {
"games": 19,
"totals": {
"IP": 95.2,
"ER": 39.0,
"R": 40.0,
"H": 62.0,
"BB": 46.0,
"SO": 94.0,
"HR": 11.0,
"BF": 393.0,
"Pitches": 1589.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0526,
"R": 2.1053,
"H": 3.2632,
"BB": 2.4211,
"SO": 4.9474,
"HR": 0.5789,
"BF": 20.6842,
"Pitches": 83.6316
},
"rates": {
"ERA": 3.669,
"WHIP": 1.1289,
"ER_per_IP": 0.40767,
"H_per_IP": 0.64808,
"BB_per_IP": 0.48084,
"SO_per_IP": 0.98258,
"HR_per_IP": 0.11498
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.908,
"predicted_H": 3.207,
"predicted_BB": 1.807,
"predicted_SO": 4.792,
"predicted_HR": 0.748,
"predicted_ERA": 3.7721,
"predicted_WHIP": 1.1017
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.908,
"final": 2.3863,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.207,
"final": 3.5543,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.807,
"final": 1.8915,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.792,
"final": 4.0071,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.748,
"final": 0.8584,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7721,
"final": 3.7721,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1017,
"final": 1.1017,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 19,
"H": 27,
"BB": 21,
"SO": 47,
"HR": 8,
"ERA": 3.5625,
"WHIP": 1.0,
"K9": 8.8125,
"HR9": 1.5,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-21T00:00:00"
},
"recent_form_boost": 0.885623779296875,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702056",
"player_name": "Trey Yesavage",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 160,
"wins": 78,
"losses": 82,
"win_pct": 0.4875,
"runs_scored": 642.0,
"runs_allowed": 688.0,
"run_differential": -46.0,
"run_differential_per_game": -0.2875,
"avg_runs_scored": 4.0125,
"avg_runs_allowed": 4.3,
"offense_index": 0.8946,
"defense_index": 1.0431,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.9,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1159
},
"opponent": {
"team": "CIN",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 660.0,
"runs_allowed": 820.0,
"run_differential": -160.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.125,
"avg_runs_allowed": 5.125,
"offense_index": 0.9197,
"defense_index": 0.8752,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1895
},
"edges": {
"quality_edge": 0.0736,
"offense_edge": -0.1054,
"opponent_offense_edge": -0.0803,
"defense_strength": 0.0431,
"opponent_defense_weakness": 0.1248,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0074,
"run_prevention": 0.9792,
"strikeout": 1.0086
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702056",
"profile": {
"available": true,
"pitcher_id": "702056",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 363.0,
"k_percent": 23.9,
"bb_percent": 11.7,
"woba": 0.28,
"xwoba": 0.284,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 33.9,
"avg_best_speed": 78.0872,
"avg_hyper_speed": 93.3361,
"whiff_percent": 30.1,
"swing_percent": 47.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4934,
"command_and_miss": 0.2371,
"regression_edge": -0.1143,
"xwoba_edge": 0.7714,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.5714,
"whiff_edge": 0.7,
"bb_edge": -0.65,
"pitch_design_score": -0.0299
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702056",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 74,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 89.33004145791904,
"release_spin_rate": 2011.7222825919243,
"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": 74,
"pitch_usage": 0.0,
"release_speed": 89.33004145791904,
"release_spin_rate": 2011.7222825919243,
"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.33,
"release_spin_rate": 2011.7223,
"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.0299,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2136,
"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.3242,
"sample_weight": 1.0,
"run_prevention_factor": 0.9724,
"strikeout_factor": 1.0389,
"walk_factor": 1.052,
"homer_factor": 0.9398,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "702056",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9724,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9724,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.052,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9398,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0389,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CLE@KC | away | Tanner Bibee | Tanner Bibee | True | 5.1 | 6.0 | 2 | 0 | 3 | 3 | 2/7 | 0/1 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.351648351648351,
"WHIP": 1.2197802197802199,
"IP": 182.0,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.688,
"recent_avg_IP": 5.133,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.171,
"sample_weight": 1.0,
"run_prevention_factor": 1.0145,
"strikeout_factor": 0.9714,
"walk_factor": 0.962,
"homer_factor": 1.0323,
"regression_flag": "neutral",
"k_percent": 18.8,
"bb_percent": 7.2,
"woba": 0.315,
"xwoba": 0.318,
"barrel_percent": 8.2,
"hard_hit_percent": 39.4,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 108,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.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": "676440",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 19.0,
"R": 19.0,
"H": 33.0,
"BB": 10.0,
"SO": 19.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 3.8,
"H": 6.6,
"BB": 2.0,
"SO": 3.8,
"HR": 0.6,
"BF": 23.6,
"Pitches": 87.0
},
"rates": {
"ERA": 6.6623,
"WHIP": 1.6753,
"ER_per_IP": 0.74026,
"H_per_IP": 1.28571,
"BB_per_IP": 0.38961,
"SO_per_IP": 0.74026,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 34.0,
"R": 36.0,
"H": 57.0,
"BB": 17.0,
"SO": 45.0,
"HR": 9.0,
"BF": 245.0,
"Pitches": 921.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.6,
"H": 5.7,
"BB": 1.7,
"SO": 4.5,
"HR": 0.9,
"BF": 24.5,
"Pitches": 92.1
},
"rates": {
"ERA": 5.3684,
"WHIP": 1.2982,
"ER_per_IP": 0.59649,
"H_per_IP": 1.0,
"BB_per_IP": 0.29825,
"SO_per_IP": 0.78947,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 32,
"totals": {
"IP": 182.0,
"ER": 88.0,
"R": 92.0,
"H": 168.0,
"BB": 54.0,
"SO": 142.0,
"HR": 29.0,
"BF": 755.0,
"Pitches": 2874.0
},
"per_game": {
"IP": 5.2,
"ER": 2.75,
"R": 2.875,
"H": 5.25,
"BB": 1.6875,
"SO": 4.4375,
"HR": 0.9062,
"BF": 23.5938,
"Pitches": 89.8125
},
"rates": {
"ERA": 4.3516,
"WHIP": 1.2198,
"ER_per_IP": 0.48352,
"H_per_IP": 0.92308,
"BB_per_IP": 0.2967,
"SO_per_IP": 0.78022,
"HR_per_IP": 0.15934
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.334,
"predicted_H": 5.875,
"predicted_BB": 1.847,
"predicted_SO": 4.228,
"predicted_HR": 0.756,
"predicted_ERA": 5.5953,
"predicted_WHIP": 1.4401
}
},
"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.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 3.334,
"final": 1.9768,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.875,
"final": 4.2976,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.847,
"final": 1.0951,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.228,
"final": 4.9493,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.756,
"final": 0.4482,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5953,
"final": 5.5953,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4401,
"final": 1.4401,
"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": 34,
"H": 57,
"BB": 17,
"SO": 45,
"HR": 9,
"ERA": 5.368421052631579,
"WHIP": 1.2982456140350878,
"K9": 7.105263157894737,
"HR9": 1.4210526315789473,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.0962460380688046,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676440",
"player_name": "Tanner Bibee",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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.1,
"predicted_R": 0.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 160,
"wins": 84,
"losses": 76,
"win_pct": 0.525,
"runs_scored": 665.0,
"runs_allowed": 659.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.1188,
"offense_index": 0.9272,
"defense_index": 1.0884,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1309
},
"opponent": {
"team": "KC",
"games": 160,
"wins": 68,
"losses": 92,
"win_pct": 0.425,
"runs_scored": 682.0,
"runs_allowed": 797.0,
"run_differential": -115.0,
"run_differential_per_game": -0.7188,
"avg_runs_scored": 4.2625,
"avg_runs_allowed": 4.9813,
"offense_index": 0.9509,
"defense_index": 0.8999,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 6.9,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.2569
},
"edges": {
"quality_edge": 0.3878,
"offense_edge": -0.0728,
"opponent_offense_edge": -0.0491,
"defense_strength": 0.0884,
"opponent_defense_weakness": 0.1001,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0201,
"run_prevention": 0.9639,
"strikeout": 1.0156
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676440",
"profile": {
"available": true,
"pitcher_id": "676440",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 698.0,
"k_percent": 18.8,
"bb_percent": 7.2,
"woba": 0.315,
"xwoba": 0.318,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 39.4,
"avg_best_speed": 78.5581,
"avg_hyper_speed": 93.8911,
"whiff_percent": 23.4,
"swing_percent": 47.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1772,
"command_and_miss": -0.2007,
"regression_edge": -0.0857,
"xwoba_edge": -0.2,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.2143,
"whiff_edge": -0.2571,
"bb_edge": 0.475,
"pitch_design_score": -0.1382
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676440",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 87.39659142983948,
"release_spin_rate": 2309.0608700163434,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 87.39659142983948,
"release_spin_rate": 2309.0608700163434,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.3966,
"release_spin_rate": 2309.0609,
"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.1382,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.987,
"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.171,
"sample_weight": 1.0,
"run_prevention_factor": 1.0145,
"strikeout_factor": 0.9714,
"walk_factor": 0.962,
"homer_factor": 1.0323,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676440",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0145,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0145,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0323,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9714,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"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 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: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260926_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CLE@KC | home | Michael Wacha | Michael Wacha | True | 6.1 | 6.1 | 0 | 3 | 2 | -1 | 8/6 | 2/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.334476843910806,
"WHIP": 1.1063464837049741,
"IP": 194.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 6.269,
"recent_avg_IP": 6.333,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0071,
"sample_weight": 1.0,
"run_prevention_factor": 1.0006,
"strikeout_factor": 0.9669,
"walk_factor": 0.952,
"homer_factor": 0.9844,
"regression_flag": "neutral",
"k_percent": 19.6,
"bb_percent": 6.7,
"woba": 0.3,
"xwoba": 0.307,
"barrel_percent": 7.0,
"hard_hit_percent": 36.4,
"whiff_percent": 21.8
},
"espn_rank": {
"rank": 14,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608379",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 9.0,
"R": 9.0,
"H": 21.0,
"BB": 11.0,
"SO": 28.0,
"HR": 6.0,
"BF": 128.0,
"Pitches": 504.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 4.2,
"BB": 2.2,
"SO": 5.6,
"HR": 1.2,
"BF": 25.6,
"Pitches": 100.8
},
"rates": {
"ERA": 2.5579,
"WHIP": 1.0105,
"ER_per_IP": 0.28421,
"H_per_IP": 0.66316,
"BB_per_IP": 0.34737,
"SO_per_IP": 0.88421,
"HR_per_IP": 0.18947
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 19.0,
"R": 21.0,
"H": 45.0,
"BB": 15.0,
"SO": 50.0,
"HR": 12.0,
"BF": 248.0,
"Pitches": 968.0
},
"per_game": {
"IP": 6.1,
"ER": 1.9,
"R": 2.1,
"H": 4.5,
"BB": 1.5,
"SO": 5.0,
"HR": 1.2,
"BF": 24.8,
"Pitches": 96.8
},
"rates": {
"ERA": 2.7581,
"WHIP": 0.9677,
"ER_per_IP": 0.30645,
"H_per_IP": 0.72581,
"BB_per_IP": 0.24194,
"SO_per_IP": 0.80645,
"HR_per_IP": 0.19355
}
},
"season": {
"games": 31,
"totals": {
"IP": 194.1,
"ER": 72.0,
"R": 76.0,
"H": 162.0,
"BB": 53.0,
"SO": 154.0,
"HR": 28.0,
"BF": 786.0,
"Pitches": 2938.0
},
"per_game": {
"IP": 6.1,
"ER": 2.3226,
"R": 2.4516,
"H": 5.2258,
"BB": 1.7097,
"SO": 4.9677,
"HR": 0.9032,
"BF": 25.3548,
"Pitches": 94.7742
},
"rates": {
"ERA": 3.3345,
"WHIP": 1.1063,
"ER_per_IP": 0.3705,
"H_per_IP": 0.83362,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.79245,
"HR_per_IP": 0.14408
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.138,
"predicted_H": 4.787,
"predicted_BB": 1.946,
"predicted_SO": 5.397,
"predicted_HR": 1.122,
"predicted_ERA": 3.0387,
"predicted_WHIP": 1.063
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.138,
"final": 2.899,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.787,
"final": 6.1001,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.946,
"final": 1.9681,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.397,
"final": 5.6434,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.122,
"final": 0.6635,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0387,
"final": 3.0387,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.063,
"final": 1.063,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 19,
"H": 45,
"BB": 15,
"SO": 50,
"HR": 12,
"ERA": 2.7580645161290325,
"WHIP": 0.967741935483871,
"K9": 7.258064516129032,
"HR9": 1.7419354838709677,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.794318335748488,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608379",
"player_name": "Michael Wacha",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 160,
"wins": 68,
"losses": 92,
"win_pct": 0.425,
"runs_scored": 682.0,
"runs_allowed": 797.0,
"run_differential": -115.0,
"run_differential_per_game": -0.7188,
"avg_runs_scored": 4.2625,
"avg_runs_allowed": 4.9813,
"offense_index": 0.9509,
"defense_index": 0.8999,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 6.9,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.2569
},
"opponent": {
"team": "CLE",
"games": 160,
"wins": 84,
"losses": 76,
"win_pct": 0.525,
"runs_scored": 665.0,
"runs_allowed": 659.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.1188,
"offense_index": 0.9272,
"defense_index": 1.0884,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1309
},
"edges": {
"quality_edge": -0.3878,
"offense_edge": -0.0491,
"opponent_offense_edge": -0.0728,
"defense_strength": -0.1001,
"opponent_defense_weakness": -0.0884,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.9844,
"run_prevention": 1.0178,
"strikeout": 0.9942
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608379",
"profile": {
"available": true,
"pitcher_id": "608379",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 708.0,
"k_percent": 19.6,
"bb_percent": 6.7,
"woba": 0.3,
"xwoba": 0.307,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 36.4,
"avg_best_speed": 77.1021,
"avg_hyper_speed": 93.5667,
"whiff_percent": 21.8,
"swing_percent": 48.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1408,
"command_and_miss": -0.2043,
"regression_edge": -0.2,
"xwoba_edge": 0.1143,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.2143,
"whiff_edge": -0.4857,
"bb_edge": 0.6,
"pitch_design_score": -0.1607
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608379",
"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": 86.9953545090726,
"release_spin_rate": 1981.837302341622,
"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": 86.9953545090726,
"release_spin_rate": 1981.837302341622,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.9954,
"release_spin_rate": 1981.8373,
"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.1607,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1475,
"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.0071,
"sample_weight": 1.0,
"run_prevention_factor": 1.0006,
"strikeout_factor": 0.9669,
"walk_factor": 0.952,
"homer_factor": 0.9844,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608379",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0006,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0006,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.952,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9844,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9669,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 29,
"Pitches": 113,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_COL@CHW | away | Jose Quintana | Jose Quintana | True | 4.0 | 3.0 | -3 | 4 | 2 | -2 | 7/2 | 4/2 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.4,
"WHIP": 1.511111111111111,
"IP": 45.0,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 4.5,
"recent_avg_IP": 4.133,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5107,
"sample_weight": 0.716,
"run_prevention_factor": 1.0434,
"strikeout_factor": 0.9378,
"walk_factor": 0.9986,
"homer_factor": 1.0436,
"regression_flag": "neutral",
"k_percent": 11.1,
"bb_percent": 9.0,
"woba": 0.369,
"xwoba": 0.359,
"barrel_percent": 9.5,
"hard_hit_percent": 34.2,
"whiff_percent": 20.9
},
"espn_rank": {
"rank": 293,
"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.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "500779",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 16.0,
"R": 17.0,
"H": 28.0,
"BB": 7.0,
"SO": 10.0,
"HR": 3.0,
"BF": 94.0,
"Pitches": 344.0
},
"per_game": {
"IP": 4.0,
"ER": 3.2,
"R": 3.4,
"H": 5.6,
"BB": 1.4,
"SO": 2.0,
"HR": 0.6,
"BF": 18.8,
"Pitches": 68.8
},
"rates": {
"ERA": 6.9677,
"WHIP": 1.6935,
"ER_per_IP": 0.77419,
"H_per_IP": 1.35484,
"BB_per_IP": 0.33871,
"SO_per_IP": 0.48387,
"HR_per_IP": 0.14516
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 27.0,
"R": 30.0,
"H": 50.0,
"BB": 18.0,
"SO": 22.0,
"HR": 8.0,
"BF": 199.0,
"Pitches": 757.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 3.0,
"H": 5.0,
"BB": 1.8,
"SO": 2.2,
"HR": 0.8,
"BF": 19.9,
"Pitches": 75.7
},
"rates": {
"ERA": 5.4,
"WHIP": 1.5111,
"ER_per_IP": 0.6,
"H_per_IP": 1.11111,
"BB_per_IP": 0.4,
"SO_per_IP": 0.48889,
"HR_per_IP": 0.17778
}
},
"season": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 27.0,
"R": 30.0,
"H": 50.0,
"BB": 18.0,
"SO": 22.0,
"HR": 8.0,
"BF": 199.0,
"Pitches": 757.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 3.0,
"H": 5.0,
"BB": 1.8,
"SO": 2.2,
"HR": 0.8,
"BF": 19.9,
"Pitches": 75.7
},
"rates": {
"ERA": 5.4,
"WHIP": 1.5111,
"ER_per_IP": 0.6,
"H_per_IP": 1.11111,
"BB_per_IP": 0.4,
"SO_per_IP": 0.48889,
"HR_per_IP": 0.17778
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.741,
"predicted_H": 4.994,
"predicted_BB": 1.594,
"predicted_SO": 2.738,
"predicted_HR": 0.671,
"predicted_ERA": 5.7286,
"predicted_WHIP": 1.5301
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.741,
"final": 3.8498,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.994,
"final": 5.9786,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.594,
"final": 2.7749,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.738,
"final": 4.3391,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.671,
"final": 0.3417,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7286,
"final": 5.7286,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5301,
"final": 1.5301,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 27,
"H": 50,
"BB": 18,
"SO": 22,
"HR": 8,
"ERA": 5.4,
"WHIP": 1.511111111111111,
"K9": 4.4,
"HR9": 1.6,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.1051203070746527,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 4.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "500779",
"player_name": "Jose Quintana",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 160,
"wins": 57,
"losses": 103,
"win_pct": 0.3563,
"runs_scored": 741.0,
"runs_allowed": 934.0,
"run_differential": -193.0,
"run_differential_per_game": -1.2063,
"avg_runs_scored": 4.6312,
"avg_runs_allowed": 5.8375,
"offense_index": 1.0331,
"defense_index": 0.7679,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.1,
"run_differential": -23.0
},
"available": true,
"quality_score": -0.3752
},
"opponent": {
"team": "CHW",
"games": 160,
"wins": 83,
"losses": 77,
"win_pct": 0.5188,
"runs_scored": 766.0,
"runs_allowed": 709.0,
"run_differential": 57.0,
"run_differential_per_game": 0.3563,
"avg_runs_scored": 4.7875,
"avg_runs_allowed": 4.4313,
"offense_index": 1.068,
"defense_index": 1.0116,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.0947
},
"edges": {
"quality_edge": -0.4699,
"offense_edge": 0.0331,
"opponent_offense_edge": 0.068,
"defense_strength": -0.2321,
"opponent_defense_weakness": -0.0116,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9715,
"run_prevention": 1.0576,
"strikeout": 0.9805
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "500779",
"profile": {
"available": true,
"pitcher_id": "500779",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 179.0,
"k_percent": 11.1,
"bb_percent": 9.0,
"woba": 0.369,
"xwoba": 0.359,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 34.2,
"avg_best_speed": 78.3903,
"avg_hyper_speed": 93.4268,
"whiff_percent": 20.9,
"swing_percent": 47.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8693,
"command_and_miss": -0.9107,
"regression_edge": 0.2857,
"xwoba_edge": -1.3714,
"barrel_edge": -0.5111,
"hard_hit_edge": 0.5286,
"whiff_edge": -0.6143,
"bb_edge": 0.025,
"pitch_design_score": -0.2274
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "500779",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 85.80290690633534,
"release_spin_rate": 2006.2347809412474,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 85.80290690633534,
"release_spin_rate": 2006.2347809412474,
"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.8029,
"release_spin_rate": 2006.2348,
"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.2274,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6245,
"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.5107,
"sample_weight": 0.716,
"run_prevention_factor": 1.0434,
"strikeout_factor": 0.9378,
"walk_factor": 0.9986,
"homer_factor": 1.0436,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "500779",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0311,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0311,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.999,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0312,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9555,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 87,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_COL@CHW | home | Davis Martin | Davis Martin | True | 5.0 | 0.2 | -13 | 0 | 2 | 2 | 1/3 | 0/1 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8394495412844036,
"WHIP": 1.2935779816513762,
"IP": 145.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.185,
"recent_avg_IP": 3.6,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2615,
"sample_weight": 1.0,
"run_prevention_factor": 1.0222,
"strikeout_factor": 0.9771,
"walk_factor": 0.966,
"homer_factor": 1.0427,
"regression_flag": "neutral",
"k_percent": 19.8,
"bb_percent": 7.4,
"woba": 0.318,
"xwoba": 0.33,
"barrel_percent": 6.5,
"hard_hit_percent": 44.7,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 55,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663436",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 5.0,
"R": 7.0,
"H": 18.0,
"BB": 7.0,
"SO": 13.0,
"HR": 4.0,
"BF": 91.0,
"Pitches": 324.0
},
"per_game": {
"IP": 4.1,
"ER": 1.0,
"R": 1.4,
"H": 3.6,
"BB": 1.4,
"SO": 2.6,
"HR": 0.8,
"BF": 18.2,
"Pitches": 64.8
},
"rates": {
"ERA": 2.0149,
"WHIP": 1.1194,
"ER_per_IP": 0.22388,
"H_per_IP": 0.80597,
"BB_per_IP": 0.31343,
"SO_per_IP": 0.58209,
"HR_per_IP": 0.1791
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 24.0,
"R": 27.0,
"H": 45.0,
"BB": 14.0,
"SO": 29.0,
"HR": 8.0,
"BF": 193.0,
"Pitches": 717.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.7,
"H": 4.5,
"BB": 1.4,
"SO": 2.9,
"HR": 0.8,
"BF": 19.3,
"Pitches": 71.7
},
"rates": {
"ERA": 4.8,
"WHIP": 1.3111,
"ER_per_IP": 0.53333,
"H_per_IP": 1.0,
"BB_per_IP": 0.31111,
"SO_per_IP": 0.64444,
"HR_per_IP": 0.17778
}
},
"season": {
"games": 28,
"totals": {
"IP": 145.1,
"ER": 62.0,
"R": 65.0,
"H": 143.0,
"BB": 45.0,
"SO": 121.0,
"HR": 14.0,
"BF": 610.0,
"Pitches": 2324.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2143,
"R": 2.3214,
"H": 5.1071,
"BB": 1.6071,
"SO": 4.3214,
"HR": 0.5,
"BF": 21.7857,
"Pitches": 83.0
},
"rates": {
"ERA": 3.8394,
"WHIP": 1.2936,
"ER_per_IP": 0.42661,
"H_per_IP": 0.98394,
"BB_per_IP": 0.30963,
"SO_per_IP": 0.83257,
"HR_per_IP": 0.09633
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.853,
"predicted_H": 4.33,
"predicted_BB": 1.515,
"predicted_SO": 3.277,
"predicted_HR": 0.753,
"predicted_ERA": 3.5466,
"predicted_WHIP": 1.2428
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.853,
"final": 1.0858,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.33,
"final": 2.9514,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.515,
"final": 0.8878,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.277,
"final": 3.9903,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.753,
"final": 0.4413,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5466,
"final": 3.5466,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2428,
"final": 1.2428,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 24,
"H": 45,
"BB": 14,
"SO": 29,
"HR": 8,
"ERA": 4.8,
"WHIP": 1.3111111111111111,
"K9": 5.8,
"HR9": 1.6,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.0326203070746527,
"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": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663436",
"player_name": "Davis Martin",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 160,
"wins": 83,
"losses": 77,
"win_pct": 0.5188,
"runs_scored": 766.0,
"runs_allowed": 709.0,
"run_differential": 57.0,
"run_differential_per_game": 0.3563,
"avg_runs_scored": 4.7875,
"avg_runs_allowed": 4.4313,
"offense_index": 1.068,
"defense_index": 1.0116,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.0947
},
"opponent": {
"team": "COL",
"games": 160,
"wins": 57,
"losses": 103,
"win_pct": 0.3563,
"runs_scored": 741.0,
"runs_allowed": 934.0,
"run_differential": -193.0,
"run_differential_per_game": -1.2063,
"avg_runs_scored": 4.6312,
"avg_runs_allowed": 5.8375,
"offense_index": 1.0331,
"defense_index": 0.7679,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.1,
"run_differential": -23.0
},
"available": true,
"quality_score": -0.3752
},
"edges": {
"quality_edge": 0.4699,
"offense_edge": 0.068,
"opponent_offense_edge": 0.0331,
"defense_strength": 0.0116,
"opponent_defense_weakness": 0.2321,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0178,
"run_prevention": 0.9806,
"strikeout": 1.0114
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663436",
"profile": {
"available": true,
"pitcher_id": "663436",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 555.0,
"k_percent": 19.8,
"bb_percent": 7.4,
"woba": 0.318,
"xwoba": 0.33,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 44.7,
"avg_best_speed": 79.6543,
"avg_hyper_speed": 94.8844,
"whiff_percent": 23.4,
"swing_percent": 48.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.339,
"command_and_miss": -0.1464,
"regression_edge": -0.3429,
"xwoba_edge": -0.5429,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.9714,
"whiff_edge": -0.2571,
"bb_edge": 0.425,
"pitch_design_score": 0.0085
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663436",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 51,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 51,
"pitch_usage": 0.0,
"release_speed": 90.01624850726196,
"release_spin_rate": 2480.5211487507763,
"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": 51,
"pitch_usage": 0.0,
"release_speed": 90.01624850726196,
"release_spin_rate": 2480.5211487507763,
"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.0162,
"release_spin_rate": 2480.5211,
"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.0085,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0608,
"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.2615,
"sample_weight": 1.0,
"run_prevention_factor": 1.0222,
"strikeout_factor": 0.9771,
"walk_factor": 0.966,
"homer_factor": 1.0427,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663436",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0222,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0222,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0427,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9771,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -13 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_HOU@OAK | away | Hayden Wesneski | Hayden Wesneski | True | 5.1 | 7.0 | 5 | 3 | 1 | -2 | 2/6 | 1/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5,
"WHIP": 1.1481481481481481,
"IP": 54.0,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 5.4,
"recent_avg_IP": 5.267,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0206,
"sample_weight": 0.784,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.9736,
"walk_factor": 0.9937,
"homer_factor": 0.9842,
"regression_flag": "neutral",
"k_percent": 18.7,
"bb_percent": 8.7,
"woba": 0.288,
"xwoba": 0.304,
"barrel_percent": 5.7,
"hard_hit_percent": 40.1,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 224,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669713",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 8.0,
"R": 12.0,
"H": 19.0,
"BB": 9.0,
"SO": 19.0,
"HR": 2.0,
"BF": 106.0,
"Pitches": 404.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 2.4,
"H": 3.8,
"BB": 1.8,
"SO": 3.8,
"HR": 0.4,
"BF": 21.2,
"Pitches": 80.8
},
"rates": {
"ERA": 2.7342,
"WHIP": 1.0633,
"ER_per_IP": 0.3038,
"H_per_IP": 0.72152,
"BB_per_IP": 0.34177,
"SO_per_IP": 0.72152,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 21.0,
"R": 25.0,
"H": 43.0,
"BB": 19.0,
"SO": 41.0,
"HR": 4.0,
"BF": 219.0,
"Pitches": 816.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.5,
"H": 4.3,
"BB": 1.9,
"SO": 4.1,
"HR": 0.4,
"BF": 21.9,
"Pitches": 81.6
},
"rates": {
"ERA": 3.5,
"WHIP": 1.1481,
"ER_per_IP": 0.38889,
"H_per_IP": 0.7963,
"BB_per_IP": 0.35185,
"SO_per_IP": 0.75926,
"HR_per_IP": 0.07407
}
},
"season": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 21.0,
"R": 25.0,
"H": 43.0,
"BB": 19.0,
"SO": 41.0,
"HR": 4.0,
"BF": 219.0,
"Pitches": 816.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.5,
"H": 4.3,
"BB": 1.9,
"SO": 4.1,
"HR": 0.4,
"BF": 21.9,
"Pitches": 81.6
},
"rates": {
"ERA": 3.5,
"WHIP": 1.1481,
"ER_per_IP": 0.38889,
"H_per_IP": 0.7963,
"BB_per_IP": 0.35185,
"SO_per_IP": 0.75926,
"HR_per_IP": 0.07407
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.126,
"predicted_H": 4.43,
"predicted_BB": 1.906,
"predicted_SO": 4.288,
"predicted_HR": 0.531,
"predicted_ERA": 3.5868,
"predicted_WHIP": 1.1879
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.126,
"final": 2.555,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.43,
"final": 3.2373,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.906,
"final": 1.4613,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.288,
"final": 3.6558,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.531,
"final": 0.2704,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5868,
"final": 3.5868,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1879,
"final": 1.1879,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 21,
"H": 43,
"BB": 19,
"SO": 41,
"HR": 4,
"ERA": 3.5000000000000004,
"WHIP": 1.1481481481481484,
"K9": 6.833333333333334,
"HR9": 0.6666666666666667,
"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-19T00:00:00"
},
"recent_form_boost": 0.8822962330005788,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669713",
"player_name": "Hayden Wesneski",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 712.0,
"runs_allowed": 764.0,
"run_differential": -52.0,
"run_differential_per_game": -0.325,
"avg_runs_scored": 4.45,
"avg_runs_allowed": 4.775,
"offense_index": 0.9917,
"defense_index": 0.9397,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0801
},
"opponent": {
"team": "OAK",
"games": 160,
"wins": 64,
"losses": 96,
"win_pct": 0.4,
"runs_scored": 697.0,
"runs_allowed": 915.0,
"run_differential": -218.0,
"run_differential_per_game": -1.3625,
"avg_runs_scored": 4.3563,
"avg_runs_allowed": 5.7188,
"offense_index": 0.9708,
"defense_index": 0.7846,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.6,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.322
},
"edges": {
"quality_edge": 0.2419,
"offense_edge": -0.0083,
"opponent_offense_edge": -0.0292,
"defense_strength": -0.0603,
"opponent_defense_weakness": 0.2154,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.009,
"run_prevention": 0.9893,
"strikeout": 1.0096
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669713",
"profile": {
"available": true,
"pitcher_id": "669713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 196.0,
"k_percent": 18.7,
"bb_percent": 8.7,
"woba": 0.288,
"xwoba": 0.304,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 40.1,
"avg_best_speed": 75.4929,
"avg_hyper_speed": 94.0037,
"whiff_percent": 22.6,
"swing_percent": 48.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2924,
"command_and_miss": -0.3221,
"regression_edge": -0.4571,
"xwoba_edge": 0.2,
"barrel_edge": 0.3333,
"hard_hit_edge": -0.3143,
"whiff_edge": -0.3714,
"bb_edge": 0.1,
"pitch_design_score": -0.0994
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 88.08890165876376,
"release_spin_rate": 2309.2290178570775,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 88.08890165876376,
"release_spin_rate": 2309.2290178570775,
"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.0889,
"release_spin_rate": 2309.229,
"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.0994,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7101,
"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.0206,
"sample_weight": 0.784,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.9736,
"walk_factor": 0.9937,
"homer_factor": 0.9842,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669713",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9986,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9986,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9951,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9876,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9793,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 82,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260926_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_HOU@OAK | home | Jack Perkins | Jack Perkins | True | 4.2 | 5.0 | 1 | 3 | 6 | 3 | 5/5 | 2/3 | 3/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.896551724137931,
"WHIP": 1.4482758620689655,
"IP": 116.0,
"games_started": null,
"games_pitched": 36,
"role_avg_IP": 4.771,
"recent_avg_IP": 5.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0739,
"sample_weight": 1.0,
"run_prevention_factor": 0.9937,
"strikeout_factor": 1.0251,
"walk_factor": 1.002,
"homer_factor": 1.0157,
"regression_flag": "positive_pitcher_regression",
"k_percent": 25.2,
"bb_percent": 9.2,
"woba": 0.347,
"xwoba": 0.309,
"barrel_percent": 8.5,
"hard_hit_percent": 36.9,
"whiff_percent": 26.4
},
"espn_rank": {
"rank": 822,
"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": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678022",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 36,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 9.0,
"R": 11.0,
"H": 24.0,
"BB": 10.0,
"SO": 27.0,
"HR": 3.0,
"BF": 108.0,
"Pitches": 414.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.2,
"H": 4.8,
"BB": 2.0,
"SO": 5.4,
"HR": 0.6,
"BF": 21.6,
"Pitches": 82.8
},
"rates": {
"ERA": 3.1558,
"WHIP": 1.3247,
"ER_per_IP": 0.35065,
"H_per_IP": 0.93506,
"BB_per_IP": 0.38961,
"SO_per_IP": 1.05195,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 27.0,
"R": 32.0,
"H": 54.0,
"BB": 21.0,
"SO": 51.0,
"HR": 9.0,
"BF": 213.0,
"Pitches": 816.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 3.2,
"H": 5.4,
"BB": 2.1,
"SO": 5.1,
"HR": 0.9,
"BF": 21.3,
"Pitches": 81.6
},
"rates": {
"ERA": 5.0979,
"WHIP": 1.5734,
"ER_per_IP": 0.56643,
"H_per_IP": 1.13287,
"BB_per_IP": 0.44056,
"SO_per_IP": 1.06993,
"HR_per_IP": 0.18881
}
},
"season": {
"games": 36,
"totals": {
"IP": 116.0,
"ER": 76.0,
"R": 83.0,
"H": 120.0,
"BB": 48.0,
"SO": 131.0,
"HR": 20.0,
"BF": 519.0,
"Pitches": 2007.0
},
"per_game": {
"IP": 3.1,
"ER": 2.1111,
"R": 2.3056,
"H": 3.3333,
"BB": 1.3333,
"SO": 3.6389,
"HR": 0.5556,
"BF": 14.4167,
"Pitches": 55.75
},
"rates": {
"ERA": 5.8966,
"WHIP": 1.4483,
"ER_per_IP": 0.65517,
"H_per_IP": 1.03448,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.12931,
"HR_per_IP": 0.17241
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.258,
"predicted_H": 4.693,
"predicted_BB": 1.88,
"predicted_SO": 4.867,
"predicted_HR": 0.703,
"predicted_ERA": 4.4128,
"predicted_WHIP": 1.4275
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4015,
"form_weight": 0.5985,
"form_reliability": 0.878,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.258,
"final": 2.1544,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.693,
"final": 4.0132,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.88,
"final": 1.9282,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.867,
"final": 4.1173,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.703,
"final": 0.8223,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4128,
"final": 4.4128,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4275,
"final": 1.4275,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 27,
"H": 54,
"BB": 21,
"SO": 51,
"HR": 9,
"ERA": 5.097902097902098,
"WHIP": 1.5734265734265735,
"K9": 9.62937062937063,
"HR9": 1.6993006993006994,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.0726921796465254,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678022",
"player_name": "Jack Perkins",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 160,
"wins": 64,
"losses": 96,
"win_pct": 0.4,
"runs_scored": 697.0,
"runs_allowed": 915.0,
"run_differential": -218.0,
"run_differential_per_game": -1.3625,
"avg_runs_scored": 4.3563,
"avg_runs_allowed": 5.7188,
"offense_index": 0.9708,
"defense_index": 0.7846,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.6,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.322
},
"opponent": {
"team": "HOU",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 712.0,
"runs_allowed": 764.0,
"run_differential": -52.0,
"run_differential_per_game": -0.325,
"avg_runs_scored": 4.45,
"avg_runs_allowed": 4.775,
"offense_index": 0.9917,
"defense_index": 0.9397,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0801
},
"edges": {
"quality_edge": -0.2419,
"offense_edge": -0.0292,
"opponent_offense_edge": -0.0083,
"defense_strength": -0.2154,
"opponent_defense_weakness": 0.0603,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9842,
"run_prevention": 1.0323,
"strikeout": 0.9934
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678022",
"profile": {
"available": true,
"pitcher_id": "678022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 462.0,
"k_percent": 25.2,
"bb_percent": 9.2,
"woba": 0.347,
"xwoba": 0.309,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 36.9,
"avg_best_speed": 78.2613,
"avg_hyper_speed": 93.5291,
"whiff_percent": 26.4,
"swing_percent": 48.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1943,
"command_and_miss": 0.2607,
"regression_edge": 1.0857,
"xwoba_edge": 0.0571,
"barrel_edge": -0.2889,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.1714,
"bb_edge": -0.025,
"pitch_design_score": 0.0793
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 91.28030678673174,
"release_spin_rate": 2236.0689533094624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 91.28030678673174,
"release_spin_rate": 2236.0689533094624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.2803,
"release_spin_rate": 2236.069,
"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.0793,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5665,
"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.0739,
"sample_weight": 1.0,
"run_prevention_factor": 0.9937,
"strikeout_factor": 1.0251,
"walk_factor": 1.002,
"homer_factor": 1.0157,
"woba_minus_xwoba": 0.038,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "678022",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9937,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9937,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0157,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0251,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAA@SEA | away | Ryan Johnson | Ryan Johnson | True | 5.1 | 5.0 | -1 | 1 | 4 | 3 | 5/7 | 0/4 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.926315789473684,
"WHIP": 1.3473684210526315,
"IP": 95.0,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.533,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3272,
"sample_weight": 1.0,
"run_prevention_factor": 1.0278,
"strikeout_factor": 0.9709,
"walk_factor": 1.008,
"homer_factor": 1.0559,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 9.5,
"woba": 0.332,
"xwoba": 0.337,
"barrel_percent": 9.7,
"hard_hit_percent": 36.0,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 434,
"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": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696270",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 9.0,
"R": 9.0,
"H": 24.0,
"BB": 8.0,
"SO": 26.0,
"HR": 2.0,
"BF": 115.0,
"Pitches": 461.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 4.8,
"BB": 1.6,
"SO": 5.2,
"HR": 0.4,
"BF": 23.0,
"Pitches": 92.2
},
"rates": {
"ERA": 2.9277,
"WHIP": 1.1566,
"ER_per_IP": 0.3253,
"H_per_IP": 0.86747,
"BB_per_IP": 0.28916,
"SO_per_IP": 0.93976,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 18.0,
"R": 18.0,
"H": 42.0,
"BB": 22.0,
"SO": 42.0,
"HR": 7.0,
"BF": 221.0,
"Pitches": 884.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 4.2,
"BB": 2.2,
"SO": 4.2,
"HR": 0.7,
"BF": 22.1,
"Pitches": 88.4
},
"rates": {
"ERA": 3.0375,
"WHIP": 1.2,
"ER_per_IP": 0.3375,
"H_per_IP": 0.7875,
"BB_per_IP": 0.4125,
"SO_per_IP": 0.7875,
"HR_per_IP": 0.13125
}
},
"season": {
"games": 21,
"totals": {
"IP": 95.0,
"ER": 52.0,
"R": 57.0,
"H": 89.0,
"BB": 39.0,
"SO": 76.0,
"HR": 18.0,
"BF": 410.0,
"Pitches": 1636.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4762,
"R": 2.7143,
"H": 4.2381,
"BB": 1.8571,
"SO": 3.619,
"HR": 0.8571,
"BF": 19.5238,
"Pitches": 77.9048
},
"rates": {
"ERA": 4.9263,
"WHIP": 1.3474,
"ER_per_IP": 0.54737,
"H_per_IP": 0.93684,
"BB_per_IP": 0.41053,
"SO_per_IP": 0.8,
"HR_per_IP": 0.18947
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.143,
"predicted_H": 4.696,
"predicted_BB": 1.93,
"predicted_SO": 4.67,
"predicted_HR": 0.655,
"predicted_ERA": 3.6074,
"predicted_WHIP": 1.2393
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.143,
"final": 1.6501,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.696,
"final": 4.8271,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.93,
"final": 1.0977,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.67,
"final": 4.3811,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.655,
"final": 0.3725,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6074,
"final": 3.6074,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2393,
"final": 1.2393,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 18,
"H": 42,
"BB": 22,
"SO": 42,
"HR": 7,
"ERA": 3.0375,
"WHIP": 1.2000000000000002,
"K9": 7.0875,
"HR9": 1.1812500000000001,
"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-20T00:00:00"
},
"recent_form_boost": 0.831561279296875,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696270",
"player_name": "Ryan Johnson",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 160,
"wins": 62,
"losses": 98,
"win_pct": 0.3875,
"runs_scored": 648.0,
"runs_allowed": 737.0,
"run_differential": -89.0,
"run_differential_per_game": -0.5563,
"avg_runs_scored": 4.05,
"avg_runs_allowed": 4.6063,
"offense_index": 0.9026,
"defense_index": 0.9741,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1638
},
"opponent": {
"team": "SEA",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 649.0,
"runs_allowed": 715.0,
"run_differential": -66.0,
"run_differential_per_game": -0.4125,
"avg_runs_scored": 4.0563,
"avg_runs_allowed": 4.4688,
"offense_index": 0.904,
"defense_index": 1.0041,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.5,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1174
},
"edges": {
"quality_edge": -0.0464,
"offense_edge": -0.0974,
"opponent_offense_edge": -0.096,
"defense_strength": -0.0259,
"opponent_defense_weakness": -0.0041,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0012,
"run_prevention": 0.9895,
"strikeout": 1.0063
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696270",
"profile": {
"available": true,
"pitcher_id": "696270",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 362.0,
"k_percent": 18.5,
"bb_percent": 9.5,
"woba": 0.332,
"xwoba": 0.337,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 36.0,
"avg_best_speed": 75.8902,
"avg_hyper_speed": 93.5365,
"whiff_percent": 23.6,
"swing_percent": 46.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3857,
"command_and_miss": -0.325,
"regression_edge": -0.1429,
"xwoba_edge": -0.7429,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.2714,
"whiff_edge": -0.2286,
"bb_edge": -0.1,
"pitch_design_score": -0.1556
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696270",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.08612475150535,
"release_spin_rate": 2294.5542445027313,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.08612475150535,
"release_spin_rate": 2294.5542445027313,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.0861,
"release_spin_rate": 2294.5542,
"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.1556,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1112,
"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.3272,
"sample_weight": 1.0,
"run_prevention_factor": 1.0278,
"strikeout_factor": 0.9709,
"walk_factor": 1.008,
"homer_factor": 1.0559,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "696270",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0278,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0278,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.008,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0559,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9709,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260926_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAA@SEA | home | Kade Anderson | Kade Anderson | True | 5.1 | 3.1 | -6 | 1 | 0 | -1 | 2/4 | 2/1 | 8/4 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.175257731958762,
"WHIP": 1.2061855670103092,
"IP": 32.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.389,
"recent_avg_IP": 5.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0083,
"sample_weight": 0.45,
"run_prevention_factor": 1.0007,
"strikeout_factor": 0.9941,
"walk_factor": 0.973,
"homer_factor": 1.0192,
"regression_flag": "neutral",
"k_percent": 21.4,
"bb_percent": 6.1,
"woba": 0.308,
"xwoba": 0.308,
"barrel_percent": 8.4,
"hard_hit_percent": 42.1,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 278,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "807739",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 12.0,
"R": 12.0,
"H": 26.0,
"BB": 6.0,
"SO": 23.0,
"HR": 2.0,
"BF": 109.0,
"Pitches": 401.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 5.2,
"BB": 1.2,
"SO": 4.6,
"HR": 0.4,
"BF": 21.8,
"Pitches": 80.2
},
"rates": {
"ERA": 4.05,
"WHIP": 1.2,
"ER_per_IP": 0.45,
"H_per_IP": 0.975,
"BB_per_IP": 0.225,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 32.1,
"ER": 15.0,
"R": 15.0,
"H": 31.0,
"BB": 8.0,
"SO": 28.0,
"HR": 4.0,
"BF": 131.0,
"Pitches": 482.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.5,
"H": 5.1667,
"BB": 1.3333,
"SO": 4.6667,
"HR": 0.6667,
"BF": 21.8333,
"Pitches": 80.3333
},
"rates": {
"ERA": 4.1753,
"WHIP": 1.2062,
"ER_per_IP": 0.46392,
"H_per_IP": 0.95876,
"BB_per_IP": 0.24742,
"SO_per_IP": 0.86598,
"HR_per_IP": 0.12371
}
},
"season": {
"games": 6,
"totals": {
"IP": 32.1,
"ER": 15.0,
"R": 15.0,
"H": 31.0,
"BB": 8.0,
"SO": 28.0,
"HR": 4.0,
"BF": 131.0,
"Pitches": 482.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.5,
"H": 5.1667,
"BB": 1.3333,
"SO": 4.6667,
"HR": 0.6667,
"BF": 21.8333,
"Pitches": 80.3333
},
"rates": {
"ERA": 4.1753,
"WHIP": 1.2062,
"ER_per_IP": 0.46392,
"H_per_IP": 0.95876,
"BB_per_IP": 0.24742,
"SO_per_IP": 0.86598,
"HR_per_IP": 0.12371
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.56,
"predicted_H": 5.214,
"predicted_BB": 1.583,
"predicted_SO": 4.779,
"predicted_HR": 0.598,
"predicted_ERA": 4.3192,
"predicted_WHIP": 1.2744
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.56,
"final": 1.7144,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.214,
"final": 3.4719,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.583,
"final": 1.809,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.779,
"final": 6.5249,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.598,
"final": 0.2739,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3192,
"final": 4.3192,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2744,
"final": 1.2744,
"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": 32.1,
"ER": 15,
"H": 31,
"BB": 8,
"SO": 28,
"HR": 4,
"ERA": 4.175257731958763,
"WHIP": 1.2061855670103094,
"K9": 7.7938144329896915,
"HR9": 1.1134020618556704,
"games_pitched": 6,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9597136633174936,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "807739",
"player_name": "Kade Anderson",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 649.0,
"runs_allowed": 715.0,
"run_differential": -66.0,
"run_differential_per_game": -0.4125,
"avg_runs_scored": 4.0563,
"avg_runs_allowed": 4.4688,
"offense_index": 0.904,
"defense_index": 1.0041,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.5,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1174
},
"opponent": {
"team": "LAA",
"games": 160,
"wins": 62,
"losses": 98,
"win_pct": 0.3875,
"runs_scored": 648.0,
"runs_allowed": 737.0,
"run_differential": -89.0,
"run_differential_per_game": -0.5563,
"avg_runs_scored": 4.05,
"avg_runs_allowed": 4.6063,
"offense_index": 0.9026,
"defense_index": 0.9741,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1638
},
"edges": {
"quality_edge": 0.0464,
"offense_edge": -0.096,
"opponent_offense_edge": -0.0974,
"defense_strength": 0.0041,
"opponent_defense_weakness": 0.0259,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0059,
"run_prevention": 0.9817,
"strikeout": 1.0092
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "807739",
"profile": {
"available": true,
"pitcher_id": "807739",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 107.0,
"k_percent": 21.4,
"bb_percent": 6.1,
"woba": 0.308,
"xwoba": 0.308,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 42.1,
"avg_best_speed": 76.2477,
"avg_hyper_speed": 94.0143,
"whiff_percent": 23.5,
"swing_percent": 54.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0367,
"command_and_miss": 0.0264,
"regression_edge": 0.0,
"xwoba_edge": 0.0857,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.6,
"whiff_edge": -0.2429,
"bb_edge": 0.75,
"pitch_design_score": -0.0604
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "807739",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 88.78642537896546,
"release_spin_rate": 2094.986479780848,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 88.78642537896546,
"release_spin_rate": 2094.986479780848,
"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.7864,
"release_spin_rate": 2094.9865,
"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.0604,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4311,
"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.0083,
"sample_weight": 0.45,
"run_prevention_factor": 1.0007,
"strikeout_factor": 0.9941,
"walk_factor": 0.973,
"homer_factor": 1.0192,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "807739",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0003,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0003,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9879,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0086,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9973,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -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/20260926_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAD@SF | away | Blake Snell | Blake Snell | True | 5.2 | 4.0 | -5 | 0 | 1 | 1 | 1/5 | 0/0 | 5/3 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 1.8620689655172415,
"WHIP": 1.0862068965517242,
"IP": 38.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.833,
"recent_avg_IP": 4.733,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8549,
"sample_weight": 0.612,
"run_prevention_factor": 0.9273,
"strikeout_factor": 1.0762,
"walk_factor": 1.0135,
"homer_factor": 0.8289,
"regression_flag": "neutral",
"k_percent": 33.1,
"bb_percent": 10.2,
"woba": 0.237,
"xwoba": 0.228,
"barrel_percent": 1.1,
"hard_hit_percent": 15.9,
"whiff_percent": 35.9
},
"espn_rank": {
"rank": 122,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 38.2,
"season_ERA": 1.862,
"season_WHIP": 1.086,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605483",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 2.0,
"R": 2.0,
"H": 15.0,
"BB": 10.0,
"SO": 32.0,
"HR": 0.0,
"BF": 94.0,
"Pitches": 413.0
},
"per_game": {
"IP": 4.2,
"ER": 0.4,
"R": 0.4,
"H": 3.0,
"BB": 2.0,
"SO": 6.4,
"HR": 0.0,
"BF": 18.8,
"Pitches": 82.6
},
"rates": {
"ERA": 0.7606,
"WHIP": 1.0563,
"ER_per_IP": 0.08451,
"H_per_IP": 0.6338,
"BB_per_IP": 0.42254,
"SO_per_IP": 1.35211,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 38.2,
"ER": 8.0,
"R": 9.0,
"H": 26.0,
"BB": 16.0,
"SO": 52.0,
"HR": 0.0,
"BF": 157.0,
"Pitches": 664.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.125,
"H": 3.25,
"BB": 2.0,
"SO": 6.5,
"HR": 0.0,
"BF": 19.625,
"Pitches": 83.0
},
"rates": {
"ERA": 1.8621,
"WHIP": 1.0862,
"ER_per_IP": 0.2069,
"H_per_IP": 0.67241,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.34483,
"HR_per_IP": 0.0
}
},
"season": {
"games": 8,
"totals": {
"IP": 38.2,
"ER": 8.0,
"R": 9.0,
"H": 26.0,
"BB": 16.0,
"SO": 52.0,
"HR": 0.0,
"BF": 157.0,
"Pitches": 664.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.125,
"H": 3.25,
"BB": 2.0,
"SO": 6.5,
"HR": 0.0,
"BF": 19.625,
"Pitches": 83.0
},
"rates": {
"ERA": 1.8621,
"WHIP": 1.0862,
"ER_per_IP": 0.2069,
"H_per_IP": 0.67241,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.34483,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.311,
"predicted_H": 3.72,
"predicted_BB": 1.939,
"predicted_SO": 5.709,
"predicted_HR": 0.274,
"predicted_ERA": 2.4614,
"predicted_WHIP": 1.18
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.311,
"final": 0.6391,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.72,
"final": 2.326,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.939,
"final": 0.9453,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.709,
"final": 4.3207,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.274,
"final": 0.1336,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4614,
"final": 2.4614,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.18,
"final": 1.18,
"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": 38.2,
"ER": 8,
"H": 26,
"BB": 16,
"SO": 52,
"HR": 0,
"ERA": 1.862068965517241,
"WHIP": 1.086206896551724,
"K9": 12.103448275862068,
"HR9": 0.0,
"games_pitched": 8,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.6964804603313578,
"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": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 1,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605483",
"player_name": "Blake Snell",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"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": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 160,
"wins": 98,
"losses": 62,
"win_pct": 0.6125,
"runs_scored": 792.0,
"runs_allowed": 596.0,
"run_differential": 196.0,
"run_differential_per_game": 1.225,
"avg_runs_scored": 4.95,
"avg_runs_allowed": 3.725,
"offense_index": 1.1037,
"defense_index": 1.204,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.3159
},
"opponent": {
"team": "SF",
"games": 160,
"wins": 65,
"losses": 95,
"win_pct": 0.4062,
"runs_scored": 665.0,
"runs_allowed": 751.0,
"run_differential": -86.0,
"run_differential_per_game": -0.5375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.6937,
"offense_index": 0.9267,
"defense_index": 0.9555,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.2,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2156
},
"edges": {
"quality_edge": 0.5315,
"offense_edge": 0.1037,
"opponent_offense_edge": -0.0733,
"defense_strength": 0.204,
"opponent_defense_weakness": 0.0445,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0303,
"run_prevention": 0.9413,
"strikeout": 1.0218
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605483",
"profile": {
"available": true,
"pitcher_id": "605483",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 153.0,
"k_percent": 33.1,
"bb_percent": 10.2,
"woba": 0.237,
"xwoba": 0.228,
"sweet_spot_percent": 28.4,
"barrel_batted_rate": 1.1,
"hard_hit_percent": 15.9,
"avg_best_speed": 71.0562,
"avg_hyper_speed": 91.0663,
"whiff_percent": 35.9,
"swing_percent": 49.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.8965,
"command_and_miss": 1.1936,
"regression_edge": 0.2571,
"xwoba_edge": 2.3714,
"barrel_edge": 1.3556,
"hard_hit_edge": 2.5,
"whiff_edge": 1.5286,
"bb_edge": -0.275,
"pitch_design_score": -0.0156
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605483",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.58527815729902,
"release_spin_rate": 2351.694545988685,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.58527815729902,
"release_spin_rate": 2351.694545988685,
"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.5853,
"release_spin_rate": 2351.6945,
"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.0156,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1116,
"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.8549,
"sample_weight": 0.612,
"run_prevention_factor": 0.9273,
"strikeout_factor": 1.0762,
"walk_factor": 1.0135,
"homer_factor": 0.8289,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605483",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9555,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9555,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0083,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8953,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0466,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 74,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260926_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAD@SF | home | Matt Wilkinson | Matt Wilkinson | True | 4.2 | 3.0 | -5 | 1 | 1 | 0 | 3/1 | 1/1 | 6/2 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 3.6486486486486487,
"WHIP": 1.0135135135135134,
"IP": 24.2,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 3.933,
"recent_avg_IP": 3.933,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0964,
"sample_weight": 0.45,
"run_prevention_factor": 0.9918,
"strikeout_factor": 0.9738,
"walk_factor": 0.9541,
"homer_factor": 0.9941,
"regression_flag": "neutral",
"k_percent": 18.2,
"bb_percent": 4.0,
"woba": 0.286,
"xwoba": 0.277,
"barrel_percent": 6.5,
"hard_hit_percent": 42.9,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 424,
"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.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683363",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.0,
"ER": 6.0,
"R": 9.0,
"H": 13.0,
"BB": 4.0,
"SO": 16.0,
"HR": 3.0,
"BF": 74.0,
"Pitches": 291.0
},
"per_game": {
"IP": 3.2,
"ER": 1.2,
"R": 1.8,
"H": 2.6,
"BB": 0.8,
"SO": 3.2,
"HR": 0.6,
"BF": 14.8,
"Pitches": 58.2
},
"rates": {
"ERA": 2.8421,
"WHIP": 0.8947,
"ER_per_IP": 0.31579,
"H_per_IP": 0.68421,
"BB_per_IP": 0.21053,
"SO_per_IP": 0.84211,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 24.2,
"ER": 10.0,
"R": 13.0,
"H": 21.0,
"BB": 4.0,
"SO": 18.0,
"HR": 4.0,
"BF": 99.0,
"Pitches": 382.0
},
"per_game": {
"IP": 3.2,
"ER": 1.4286,
"R": 1.8571,
"H": 3.0,
"BB": 0.5714,
"SO": 2.5714,
"HR": 0.5714,
"BF": 14.1429,
"Pitches": 54.5714
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.0135,
"ER_per_IP": 0.40541,
"H_per_IP": 0.85135,
"BB_per_IP": 0.16216,
"SO_per_IP": 0.72973,
"HR_per_IP": 0.16216
}
},
"season": {
"games": 7,
"totals": {
"IP": 24.2,
"ER": 10.0,
"R": 13.0,
"H": 21.0,
"BB": 4.0,
"SO": 18.0,
"HR": 4.0,
"BF": 99.0,
"Pitches": 382.0
},
"per_game": {
"IP": 3.2,
"ER": 1.4286,
"R": 1.8571,
"H": 3.0,
"BB": 0.5714,
"SO": 2.5714,
"HR": 0.5714,
"BF": 14.1429,
"Pitches": 54.5714
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.0135,
"ER_per_IP": 0.40541,
"H_per_IP": 0.85135,
"BB_per_IP": 0.16216,
"SO_per_IP": 0.72973,
"HR_per_IP": 0.16216
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.62,
"predicted_H": 3.282,
"predicted_BB": 1.082,
"predicted_SO": 3.414,
"predicted_HR": 0.61,
"predicted_ERA": 3.6955,
"predicted_WHIP": 1.1062
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.62,
"final": 1.2938,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.282,
"final": 3.1337,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.082,
"final": 1.0389,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.414,
"final": 4.7744,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.61,
"final": 0.2891,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6955,
"final": 3.6955,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1062,
"final": 1.1062,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 24.2,
"ER": 10,
"H": 21,
"BB": 4,
"SO": 18,
"HR": 4,
"ERA": 3.6486486486486487,
"WHIP": 1.0135135135135134,
"K9": 6.5675675675675675,
"HR9": 1.4594594594594594,
"games_pitched": 7,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9142457500696182,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683363",
"player_name": "Matt Wilkinson",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"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": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 160,
"wins": 65,
"losses": 95,
"win_pct": 0.4062,
"runs_scored": 665.0,
"runs_allowed": 751.0,
"run_differential": -86.0,
"run_differential_per_game": -0.5375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.6937,
"offense_index": 0.9267,
"defense_index": 0.9555,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.2,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2156
},
"opponent": {
"team": "LAD",
"games": 160,
"wins": 98,
"losses": 62,
"win_pct": 0.6125,
"runs_scored": 792.0,
"runs_allowed": 596.0,
"run_differential": 196.0,
"run_differential_per_game": 1.225,
"avg_runs_scored": 4.95,
"avg_runs_allowed": 3.725,
"offense_index": 1.1037,
"defense_index": 1.204,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.3159
},
"edges": {
"quality_edge": -0.5315,
"offense_edge": -0.0733,
"opponent_offense_edge": 0.1037,
"defense_strength": -0.0445,
"opponent_defense_weakness": -0.204,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9733,
"run_prevention": 1.0476,
"strikeout": 0.9758
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683363",
"profile": {
"available": true,
"pitcher_id": "683363",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 81.0,
"k_percent": 18.2,
"bb_percent": 4.0,
"woba": 0.286,
"xwoba": 0.277,
"sweet_spot_percent": 29.9,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 42.9,
"avg_best_speed": 78.36,
"avg_hyper_speed": 93.9761,
"whiff_percent": 18.8,
"swing_percent": 44.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4996,
"command_and_miss": -0.3093,
"regression_edge": 0.2571,
"xwoba_edge": 0.9714,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.7143,
"whiff_edge": -0.9143,
"bb_edge": 1.275,
"pitch_design_score": -0.1358
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683363",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 56,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 56,
"pitch_usage": 0.0,
"release_speed": 87.43889451666871,
"release_spin_rate": 1987.095936949808,
"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": 56,
"pitch_usage": 0.0,
"release_speed": 87.43889451666871,
"release_spin_rate": 1987.095936949808,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4389,
"release_spin_rate": 1987.0959,
"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.1358,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9701,
"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.0964,
"sample_weight": 0.45,
"run_prevention_factor": 0.9918,
"strikeout_factor": 0.9738,
"walk_factor": 0.9541,
"homer_factor": 0.9941,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683363",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9963,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9963,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9793,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9973,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9882,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260926_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_NYM@WAS | away | Jonah Tong | Jonah Tong | True | 5.0 | 5.0 | 0 | 3 | 1 | -2 | 5/3 | 2/1 | 6/9 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.207792207792208,
"WHIP": 1.3246753246753247,
"IP": 25.2,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.222,
"recent_avg_IP": 5.222,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1322,
"sample_weight": 0.45,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0041,
"walk_factor": 1.0207,
"homer_factor": 0.9695,
"regression_flag": "neutral",
"k_percent": 21.9,
"bb_percent": 11.4,
"woba": 0.286,
"xwoba": 0.284,
"barrel_percent": 5.3,
"hard_hit_percent": 36.0,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 614,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "804636",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 12.0,
"R": 15.0,
"H": 21.0,
"BB": 12.0,
"SO": 23.0,
"HR": 2.0,
"BF": 105.0,
"Pitches": 424.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 3.0,
"H": 4.2,
"BB": 2.4,
"SO": 4.6,
"HR": 0.4,
"BF": 21.0,
"Pitches": 84.8
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.4559,
"ER_per_IP": 0.52941,
"H_per_IP": 0.92647,
"BB_per_IP": 0.52941,
"SO_per_IP": 1.01471,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 25.2,
"ER": 12.0,
"R": 15.0,
"H": 21.0,
"BB": 13.0,
"SO": 25.0,
"HR": 2.0,
"BF": 114.0,
"Pitches": 452.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.5,
"H": 3.5,
"BB": 2.1667,
"SO": 4.1667,
"HR": 0.3333,
"BF": 19.0,
"Pitches": 75.3333
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.3247,
"ER_per_IP": 0.46753,
"H_per_IP": 0.81818,
"BB_per_IP": 0.50649,
"SO_per_IP": 0.97403,
"HR_per_IP": 0.07792
}
},
"season": {
"games": 6,
"totals": {
"IP": 25.2,
"ER": 12.0,
"R": 15.0,
"H": 21.0,
"BB": 13.0,
"SO": 25.0,
"HR": 2.0,
"BF": 114.0,
"Pitches": 452.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.5,
"H": 3.5,
"BB": 2.1667,
"SO": 4.1667,
"HR": 0.3333,
"BF": 19.0,
"Pitches": 75.3333
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.3247,
"ER_per_IP": 0.46753,
"H_per_IP": 0.81818,
"BB_per_IP": 0.50649,
"SO_per_IP": 0.97403,
"HR_per_IP": 0.07792
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.482,
"predicted_H": 4.527,
"predicted_BB": 2.203,
"predicted_SO": 4.678,
"predicted_HR": 0.551,
"predicted_ERA": 4.659,
"predicted_WHIP": 1.404
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.482,
"final": 3.3048,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.527,
"final": 4.7834,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.203,
"final": 2.093,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.678,
"final": 5.3946,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.551,
"final": 1.3364,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.659,
"final": 4.659,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.404,
"final": 1.404,
"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": 25.2,
"ER": 12,
"H": 21,
"BB": 13,
"SO": 25,
"HR": 2,
"ERA": 4.207792207792208,
"WHIP": 1.3246753246753247,
"K9": 8.766233766233766,
"HR9": 0.7012987012987013,
"games_pitched": 6,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9712126715779305,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804636",
"player_name": "Jonah Tong",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "NYM",
"games": 160,
"wins": 73,
"losses": 87,
"win_pct": 0.4562,
"runs_scored": 688.0,
"runs_allowed": 724.0,
"run_differential": -36.0,
"run_differential_per_game": -0.225,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.525,
"offense_index": 0.9568,
"defense_index": 0.9932,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0998
},
"opponent": {
"team": "WAS",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 814.0,
"runs_allowed": 804.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0625,
"avg_runs_scored": 5.0875,
"avg_runs_allowed": 5.025,
"offense_index": 1.1321,
"defense_index": 0.8943,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0564
},
"edges": {
"quality_edge": -0.1562,
"offense_edge": -0.0432,
"opponent_offense_edge": 0.1321,
"defense_strength": -0.0068,
"opponent_defense_weakness": 0.1057,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9883,
"run_prevention": 1.0296,
"strikeout": 0.9847
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "804636",
"profile": {
"available": true,
"pitcher_id": "804636",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 89.0,
"k_percent": 21.9,
"bb_percent": 11.4,
"woba": 0.286,
"xwoba": 0.284,
"sweet_spot_percent": 28.0,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 36.0,
"avg_best_speed": 80.655,
"avg_hyper_speed": 93.6935,
"whiff_percent": 26.9,
"swing_percent": 50.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.52,
"command_and_miss": -0.0364,
"regression_edge": 0.0571,
"xwoba_edge": 0.7714,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.2714,
"whiff_edge": 0.2429,
"bb_edge": -0.575,
"pitch_design_score": 0.0784
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804636",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 91.26372062270342,
"release_spin_rate": 2117.2126479472468,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 91.26372062270342,
"release_spin_rate": 2117.2126479472468,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.2637,
"release_spin_rate": 2117.2126,
"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.0784,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5598,
"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.1322,
"sample_weight": 0.45,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0041,
"walk_factor": 1.0207,
"homer_factor": 0.9695,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "804636",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.995,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.995,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0093,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9863,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0018,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260926_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_NYM@WAS | home | Connelly Early | Connelly Early | True | 5.2 | 3.0 | -8 | 5 | 0 | -5 | 4/1 | 3/0 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.436363636363636,
"WHIP": 1.2545454545454544,
"IP": 91.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.392,
"recent_avg_IP": 5.067,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1865,
"sample_weight": 1.0,
"run_prevention_factor": 1.0158,
"strikeout_factor": 1.0017,
"walk_factor": 0.992,
"homer_factor": 1.0853,
"regression_flag": "neutral",
"k_percent": 23.8,
"bb_percent": 8.7,
"woba": 0.32,
"xwoba": 0.32,
"barrel_percent": 10.6,
"hard_hit_percent": 40.9,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 113,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "813349",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 11.0,
"R": 11.0,
"H": 26.0,
"BB": 11.0,
"SO": 30.0,
"HR": 4.0,
"BF": 113.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.2,
"H": 5.2,
"BB": 2.2,
"SO": 6.0,
"HR": 0.8,
"BF": 22.6,
"Pitches": 88.8
},
"rates": {
"ERA": 3.9079,
"WHIP": 1.4605,
"ER_per_IP": 0.43421,
"H_per_IP": 1.02632,
"BB_per_IP": 0.43421,
"SO_per_IP": 1.18421,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 20.0,
"R": 20.0,
"H": 51.0,
"BB": 17.0,
"SO": 62.0,
"HR": 10.0,
"BF": 239.0,
"Pitches": 912.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 5.1,
"BB": 1.7,
"SO": 6.2,
"HR": 1.0,
"BF": 23.9,
"Pitches": 91.2
},
"rates": {
"ERA": 3.2143,
"WHIP": 1.2143,
"ER_per_IP": 0.35714,
"H_per_IP": 0.91071,
"BB_per_IP": 0.30357,
"SO_per_IP": 1.10714,
"HR_per_IP": 0.17857
}
},
"season": {
"games": 17,
"totals": {
"IP": 91.2,
"ER": 35.0,
"R": 35.0,
"H": 81.0,
"BB": 34.0,
"SO": 93.0,
"HR": 15.0,
"BF": 390.0,
"Pitches": 1528.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0588,
"R": 2.0588,
"H": 4.7647,
"BB": 2.0,
"SO": 5.4706,
"HR": 0.8824,
"BF": 22.9412,
"Pitches": 89.8824
},
"rates": {
"ERA": 3.4364,
"WHIP": 1.2545,
"ER_per_IP": 0.38182,
"H_per_IP": 0.88364,
"BB_per_IP": 0.37091,
"SO_per_IP": 1.01455,
"HR_per_IP": 0.16364
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.279,
"predicted_H": 5.185,
"predicted_BB": 2.028,
"predicted_SO": 5.818,
"predicted_HR": 0.874,
"predicted_ERA": 3.8098,
"predicted_WHIP": 1.3399
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.279,
"final": 3.4927,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.185,
"final": 4.6564,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.028,
"final": 2.4615,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.818,
"final": 4.5611,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.874,
"final": 0.9302,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8098,
"final": 3.8098,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3399,
"final": 1.3399,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 20,
"H": 51,
"BB": 17,
"SO": 62,
"HR": 10,
"ERA": 3.2142857142857144,
"WHIP": 1.2142857142857142,
"K9": 9.964285714285714,
"HR9": 1.6071428571428572,
"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-06-30T00:00:00"
},
"recent_form_boost": 0.8518068150111606,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "813349",
"player_name": "Connelly Early",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.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": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 814.0,
"runs_allowed": 804.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0625,
"avg_runs_scored": 5.0875,
"avg_runs_allowed": 5.025,
"offense_index": 1.1321,
"defense_index": 0.8943,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0564
},
"opponent": {
"team": "NYM",
"games": 160,
"wins": 73,
"losses": 87,
"win_pct": 0.4562,
"runs_scored": 688.0,
"runs_allowed": 724.0,
"run_differential": -36.0,
"run_differential_per_game": -0.225,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.525,
"offense_index": 0.9568,
"defense_index": 0.9932,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0998
},
"edges": {
"quality_edge": 0.1562,
"offense_edge": 0.1321,
"opponent_offense_edge": -0.0432,
"defense_strength": -0.1057,
"opponent_defense_weakness": 0.0068,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0048,
"run_prevention": 0.9958,
"strikeout": 1.0081
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "813349",
"profile": {
"available": true,
"pitcher_id": "813349",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 345.0,
"k_percent": 23.8,
"bb_percent": 8.7,
"woba": 0.32,
"xwoba": 0.32,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 10.6,
"hard_hit_percent": 40.9,
"avg_best_speed": 80.9147,
"avg_hyper_speed": 94.5085,
"whiff_percent": 23.7,
"swing_percent": 46.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3526,
"command_and_miss": 0.0607,
"regression_edge": 0.0,
"xwoba_edge": -0.2571,
"barrel_edge": -0.7556,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.2143,
"bb_edge": 0.1,
"pitch_design_score": -0.0601
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "813349",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.79168102475339,
"release_spin_rate": 2114.250313622991,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.79168102475339,
"release_spin_rate": 2114.250313622991,
"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.7917,
"release_spin_rate": 2114.2503,
"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.0601,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.429,
"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.1865,
"sample_weight": 1.0,
"run_prevention_factor": 1.0158,
"strikeout_factor": 1.0017,
"walk_factor": 0.992,
"homer_factor": 1.0853,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "813349",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0158,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0158,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.992,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0853,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0017,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
}
],
"provenance": {
"prediction": "output/games/20260926_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_PIT@DET | away | Kirby Yates | Kirby Yates | True | 5.0 | 1.2 | -10 | 2 | 0 | -2 | 5/2 | 2/0 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.098360655737705,
"WHIP": 1.180327868852459,
"IP": 40.2,
"games_started": null,
"games_pitched": 44,
"role_avg_IP": 0.924,
"recent_avg_IP": 0.933,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1696,
"sample_weight": 0.652,
"run_prevention_factor": 0.9856,
"strikeout_factor": 1.0343,
"walk_factor": 1.0104,
"homer_factor": 1.0022,
"regression_flag": "neutral",
"k_percent": 27.9,
"bb_percent": 9.9,
"woba": 0.291,
"xwoba": 0.286,
"barrel_percent": 5.8,
"hard_hit_percent": 46.6,
"whiff_percent": 28.5
},
"espn_rank": {
"rank": 241,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 40.2,
"season_ERA": 3.098,
"season_WHIP": 1.18,
"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": 8.339,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6251,
"prior_weight": 0.3749
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "489446",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 44,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 1.0,
"R": 1.0,
"H": 5.0,
"BB": 4.0,
"SO": 4.0,
"HR": 0.0,
"BF": 20.0,
"Pitches": 88.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.0,
"BB": 0.8,
"SO": 0.8,
"HR": 0.0,
"BF": 4.0,
"Pitches": 17.6
},
"rates": {
"ERA": 1.9286,
"WHIP": 1.9286,
"ER_per_IP": 0.21429,
"H_per_IP": 1.07143,
"BB_per_IP": 0.85714,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 2.0,
"R": 2.0,
"H": 10.0,
"BB": 4.0,
"SO": 10.0,
"HR": 0.0,
"BF": 39.0,
"Pitches": 163.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.0,
"BB": 0.4,
"SO": 1.0,
"HR": 0.0,
"BF": 3.9,
"Pitches": 16.3
},
"rates": {
"ERA": 1.9286,
"WHIP": 1.5,
"ER_per_IP": 0.21429,
"H_per_IP": 1.07143,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.0
}
},
"season": {
"games": 44,
"totals": {
"IP": 40.2,
"ER": 14.0,
"R": 15.0,
"H": 31.0,
"BB": 17.0,
"SO": 48.0,
"HR": 2.0,
"BF": 171.0,
"Pitches": 692.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3182,
"R": 0.3409,
"H": 0.7045,
"BB": 0.3864,
"SO": 1.0909,
"HR": 0.0455,
"BF": 3.8864,
"Pitches": 15.7273
},
"rates": {
"ERA": 3.0984,
"WHIP": 1.1803,
"ER_per_IP": 0.34426,
"H_per_IP": 0.7623,
"BB_per_IP": 0.41803,
"SO_per_IP": 1.18033,
"HR_per_IP": 0.04918
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 0.942,
"predicted_H": 2.749,
"predicted_BB": 1.456,
"predicted_SO": 2.678,
"predicted_HR": 0.17,
"predicted_ERA": 3.0846,
"predicted_WHIP": 1.5292
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5084,
"form_weight": 0.4916,
"form_reliability": 0.6251,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.339,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6251,
"prior_weight": 0.3749
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.942,
"final": 1.9883,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.749,
"final": 3.8934,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.456,
"final": 1.7326,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.678,
"final": 3.3501,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.17,
"final": 0.0836,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0846,
"final": 3.0846,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5292,
"final": 1.5292,
"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.1,
"ER": 2,
"H": 10,
"BB": 4,
"SO": 10,
"HR": 0,
"ERA": 1.9285714285714288,
"WHIP": 1.5000000000000002,
"K9": 9.642857142857144,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.9111610753536225,
"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": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.339,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6251,
"prior_weight": 0.3749
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "489446",
"player_name": "Kirby Yates",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 160,
"wins": 81,
"losses": 79,
"win_pct": 0.5062,
"runs_scored": 760.0,
"runs_allowed": 733.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1688,
"avg_runs_scored": 4.75,
"avg_runs_allowed": 4.5812,
"offense_index": 1.0578,
"defense_index": 0.9802,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0609
},
"opponent": {
"team": "DET",
"games": 160,
"wins": 75,
"losses": 85,
"win_pct": 0.4688,
"runs_scored": 717.0,
"runs_allowed": 645.0,
"run_differential": 72.0,
"run_differential_per_game": 0.45,
"avg_runs_scored": 4.4813,
"avg_runs_allowed": 4.0312,
"offense_index": 0.998,
"defense_index": 1.1139,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.4,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0064
},
"edges": {
"quality_edge": 0.0673,
"offense_edge": 0.0578,
"opponent_offense_edge": -0.002,
"defense_strength": -0.0198,
"opponent_defense_weakness": -0.1139,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0022,
"run_prevention": 0.9983,
"strikeout": 1.0022
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "489446",
"profile": {
"available": true,
"pitcher_id": "489446",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 163.0,
"k_percent": 27.9,
"bb_percent": 9.9,
"woba": 0.291,
"xwoba": 0.286,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 5.8,
"hard_hit_percent": 46.6,
"avg_best_speed": 82.2002,
"avg_hyper_speed": 95.1416,
"whiff_percent": 28.5,
"swing_percent": 52.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2141,
"command_and_miss": 0.5043,
"regression_edge": 0.1429,
"xwoba_edge": 0.7143,
"barrel_edge": 0.3111,
"hard_hit_edge": -1.2429,
"whiff_edge": 0.4714,
"bb_edge": -0.2,
"pitch_design_score": -0.0645
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "489446",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 88.71216371796498,
"release_spin_rate": 1986.3610646709749,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 88.71216371796498,
"release_spin_rate": 1986.3610646709749,
"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.7122,
"release_spin_rate": 1986.3611,
"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.0645,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4608,
"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.1696,
"sample_weight": 0.652,
"run_prevention_factor": 0.9856,
"strikeout_factor": 1.0343,
"walk_factor": 1.0104,
"homer_factor": 1.0022,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "489446",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9906,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9906,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0068,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0014,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0224,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_PIT@DET | home | Justin Verlander | Justin Verlander | True | 3.2 | 5.1 | 5 | 6 | 2 | -4 | 9/5 | 0/1 | 3/6 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 12.272727272727273,
"WHIP": 2.181818181818182,
"IP": 3.2,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 3.667,
"recent_avg_IP": 3.667,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0385,
"sample_weight": 0.45,
"run_prevention_factor": 0.9967,
"strikeout_factor": 1.0062,
"walk_factor": 1.009,
"homer_factor": 0.9936,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 10.1,
"woba": 0.314,
"xwoba": 0.308,
"barrel_percent": 6.8,
"hard_hit_percent": 37.1,
"whiff_percent": 26.5
},
"espn_rank": {
"rank": 676,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "434378",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"per_game": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"rates": {
"ERA": 12.2727,
"WHIP": 2.1818,
"ER_per_IP": 1.36364,
"H_per_IP": 1.63636,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.27273,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"per_game": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"rates": {
"ERA": 12.2727,
"WHIP": 2.1818,
"ER_per_IP": 1.36364,
"H_per_IP": 1.63636,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.27273,
"HR_per_IP": 0.27273
}
},
"season": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"per_game": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"rates": {
"ERA": 12.2727,
"WHIP": 2.1818,
"ER_per_IP": 1.36364,
"H_per_IP": 1.63636,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.27273,
"HR_per_IP": 0.27273
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.585,
"predicted_H": 4.308,
"predicted_BB": 1.606,
"predicted_SO": 3.255,
"predicted_HR": 0.668,
"predicted_ERA": 5.8975,
"predicted_WHIP": 1.4993
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.585,
"final": 4.9826,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.308,
"final": 7.6021,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.606,
"final": 0.4785,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.255,
"final": 1.6718,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.668,
"final": 0.9011,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8975,
"final": 5.8975,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4993,
"final": 1.4993,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 3.2,
"ER": 5,
"H": 6,
"BB": 2,
"SO": 1,
"HR": 1,
"ERA": 12.272727272727273,
"WHIP": 2.181818181818182,
"K9": 2.4545454545454546,
"HR9": 2.4545454545454546,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-03-30T00:00:00"
},
"recent_form_boost": 1.1093440035382907,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_BB": 0.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 6,
"predicted_H": 9,
"predicted_BB": 0,
"predicted_SO": 1,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "434378",
"player_name": "Justin Verlander",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"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": "DET",
"games": 160,
"wins": 75,
"losses": 85,
"win_pct": 0.4688,
"runs_scored": 717.0,
"runs_allowed": 645.0,
"run_differential": 72.0,
"run_differential_per_game": 0.45,
"avg_runs_scored": 4.4813,
"avg_runs_allowed": 4.0312,
"offense_index": 0.998,
"defense_index": 1.1139,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.4,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0064
},
"opponent": {
"team": "PIT",
"games": 160,
"wins": 81,
"losses": 79,
"win_pct": 0.5062,
"runs_scored": 760.0,
"runs_allowed": 733.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1688,
"avg_runs_scored": 4.75,
"avg_runs_allowed": 4.5812,
"offense_index": 1.0578,
"defense_index": 0.9802,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0609
},
"edges": {
"quality_edge": -0.0673,
"offense_edge": -0.002,
"opponent_offense_edge": 0.0578,
"defense_strength": 0.1139,
"opponent_defense_weakness": 0.0198,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9984,
"run_prevention": 1.0012,
"strikeout": 0.9934
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "434378",
"profile": {
"available": true,
"pitcher_id": "434378",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 23.1,
"bb_percent": 10.1,
"woba": 0.314,
"xwoba": 0.308,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 37.1,
"avg_best_speed": 77.5616,
"avg_hyper_speed": 93.7975,
"whiff_percent": 26.5,
"swing_percent": 47.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0823,
"command_and_miss": 0.0857,
"regression_edge": 0.1714,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.1143,
"whiff_edge": 0.1857,
"bb_edge": -0.25,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "434378",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0385,
"sample_weight": 0.45,
"run_prevention_factor": 0.9967,
"strikeout_factor": 1.0062,
"walk_factor": 1.009,
"homer_factor": 0.9936,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "434378",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 0.9985,
"adjusted": 5
},
"predicted_H": {
"original": 6.0,
"factor": 0.9985,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.004,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9971,
"adjusted": 1
},
"predicted_SO": {
"original": 1.0,
"factor": 1.0028,
"adjusted": 1
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 9,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260926_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_STL@MIL | away | Quinn Mathews | Quinn Mathews | True | 6.0 | 5.0 | -3 | 1 | 3 | 2 | 5/5 | 0/2 | 7/7 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 3.6541353383458643,
"WHIP": 1.37593984962406,
"IP": 44.1,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 5.542,
"recent_avg_IP": 6.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1193,
"sample_weight": 0.644,
"run_prevention_factor": 0.9899,
"strikeout_factor": 0.9996,
"walk_factor": 1.0052,
"homer_factor": 0.943,
"regression_flag": "neutral",
"k_percent": 20.5,
"bb_percent": 9.5,
"woba": 0.311,
"xwoba": 0.299,
"barrel_percent": 3.8,
"hard_hit_percent": 34.8,
"whiff_percent": 26.6
},
"espn_rank": {
"rank": 218,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687273",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 25.0,
"BB": 11.0,
"SO": 26.0,
"HR": 3.0,
"BF": 124.0,
"Pitches": 495.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 5.0,
"BB": 2.2,
"SO": 5.2,
"HR": 0.6,
"BF": 24.8,
"Pitches": 99.0
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.1868,
"ER_per_IP": 0.26374,
"H_per_IP": 0.82418,
"BB_per_IP": 0.36264,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 44.1,
"ER": 18.0,
"R": 18.0,
"H": 43.0,
"BB": 18.0,
"SO": 39.0,
"HR": 4.0,
"BF": 190.0,
"Pitches": 786.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.25,
"H": 5.375,
"BB": 2.25,
"SO": 4.875,
"HR": 0.5,
"BF": 23.75,
"Pitches": 98.25
},
"rates": {
"ERA": 3.6541,
"WHIP": 1.3759,
"ER_per_IP": 0.40602,
"H_per_IP": 0.96992,
"BB_per_IP": 0.40602,
"SO_per_IP": 0.8797,
"HR_per_IP": 0.09023
}
},
"season": {
"games": 8,
"totals": {
"IP": 44.1,
"ER": 18.0,
"R": 18.0,
"H": 43.0,
"BB": 18.0,
"SO": 39.0,
"HR": 4.0,
"BF": 190.0,
"Pitches": 786.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.25,
"H": 5.375,
"BB": 2.25,
"SO": 4.875,
"HR": 0.5,
"BF": 23.75,
"Pitches": 98.25
},
"rates": {
"ERA": 3.6541,
"WHIP": 1.3759,
"ER_per_IP": 0.40602,
"H_per_IP": 0.96992,
"BB_per_IP": 0.40602,
"SO_per_IP": 0.8797,
"HR_per_IP": 0.09023
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.301,
"predicted_H": 5.424,
"predicted_BB": 2.241,
"predicted_SO": 5.293,
"predicted_HR": 0.69,
"predicted_ERA": 3.4891,
"predicted_WHIP": 1.2915
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.301,
"final": 1.6342,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.424,
"final": 5.2067,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.241,
"final": 1.0925,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.293,
"final": 6.1678,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.69,
"final": 0.3364,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4891,
"final": 3.4891,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2915,
"final": 1.2915,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 18,
"H": 43,
"BB": 18,
"SO": 39,
"HR": 4,
"ERA": 3.6541353383458643,
"WHIP": 1.37593984962406,
"K9": 7.917293233082706,
"HR9": 0.8120300751879699,
"games_pitched": 8,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9053312511013861,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687273",
"player_name": "Quinn Mathews",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 160,
"wins": 77,
"losses": 83,
"win_pct": 0.4813,
"runs_scored": 714.0,
"runs_allowed": 740.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1625,
"avg_runs_scored": 4.4625,
"avg_runs_allowed": 4.625,
"offense_index": 0.9955,
"defense_index": 0.9692,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.0,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.1058
},
"opponent": {
"team": "MIL",
"games": 160,
"wins": 101,
"losses": 59,
"win_pct": 0.6312,
"runs_scored": 823.0,
"runs_allowed": 612.0,
"run_differential": 211.0,
"run_differential_per_game": 1.3188,
"avg_runs_scored": 5.1437,
"avg_runs_allowed": 3.825,
"offense_index": 1.1475,
"defense_index": 1.1719,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.9,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.3783
},
"edges": {
"quality_edge": -0.4841,
"offense_edge": -0.0045,
"opponent_offense_edge": 0.1475,
"defense_strength": -0.0308,
"opponent_defense_weakness": -0.1719,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9738,
"run_prevention": 1.0509,
"strikeout": 0.9737
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687273",
"profile": {
"available": true,
"pitcher_id": "687273",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 161.0,
"k_percent": 20.5,
"bb_percent": 9.5,
"woba": 0.311,
"xwoba": 0.299,
"sweet_spot_percent": 32.6,
"barrel_batted_rate": 3.8,
"hard_hit_percent": 34.8,
"avg_best_speed": 78.4522,
"avg_hyper_speed": 93.8025,
"whiff_percent": 26.6,
"swing_percent": 45.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3101,
"command_and_miss": -0.0464,
"regression_edge": 0.3429,
"xwoba_edge": 0.3429,
"barrel_edge": 0.7556,
"hard_hit_edge": 0.4429,
"whiff_edge": 0.2,
"bb_edge": -0.1,
"pitch_design_score": -0.1333
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687273",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 87.48356848439896,
"release_spin_rate": 2148.8854214067615,
"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": 99,
"pitch_usage": 0.0,
"release_speed": 87.48356848439896,
"release_spin_rate": 2148.8854214067615,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4836,
"release_spin_rate": 2148.8854,
"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.1333,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9522,
"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.1193,
"sample_weight": 0.644,
"run_prevention_factor": 0.9899,
"strikeout_factor": 0.9996,
"walk_factor": 1.0052,
"homer_factor": 0.943,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687273",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9935,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9935,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0033,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9633,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9997,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "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/20260926_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_STL@MIL | home | Dustin May | Dustin May | True | 4.1 | 3.0 | -4 | 1 | 2 | 1 | 1/3 | 2/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.668224299065421,
"WHIP": 1.3177570093457944,
"IP": 142.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 4.756,
"recent_avg_IP": 3.667,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1896,
"sample_weight": 1.0,
"run_prevention_factor": 1.0161,
"strikeout_factor": 0.9926,
"walk_factor": 0.98,
"homer_factor": 1.0554,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 8.1,
"woba": 0.317,
"xwoba": 0.324,
"barrel_percent": 7.6,
"hard_hit_percent": 44.4,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 314,
"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": "669160",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.1,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 7.0,
"SO": 21.0,
"HR": 4.0,
"BF": 84.0,
"Pitches": 343.0
},
"per_game": {
"IP": 3.2,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 1.4,
"SO": 4.2,
"HR": 0.8,
"BF": 16.8,
"Pitches": 68.6
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4727,
"ER_per_IP": 0.6,
"H_per_IP": 1.09091,
"BB_per_IP": 0.38182,
"SO_per_IP": 1.14545,
"HR_per_IP": 0.21818
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 38.2,
"ER": 21.0,
"R": 21.0,
"H": 35.0,
"BB": 16.0,
"SO": 36.0,
"HR": 6.0,
"BF": 167.0,
"Pitches": 660.0
},
"per_game": {
"IP": 4.0,
"ER": 2.1,
"R": 2.1,
"H": 3.5,
"BB": 1.6,
"SO": 3.6,
"HR": 0.6,
"BF": 16.7,
"Pitches": 66.0
},
"rates": {
"ERA": 4.8879,
"WHIP": 1.319,
"ER_per_IP": 0.5431,
"H_per_IP": 0.90517,
"BB_per_IP": 0.41379,
"SO_per_IP": 0.93103,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 30,
"totals": {
"IP": 142.2,
"ER": 74.0,
"R": 77.0,
"H": 139.0,
"BB": 49.0,
"SO": 139.0,
"HR": 13.0,
"BF": 608.0,
"Pitches": 2341.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4667,
"R": 2.5667,
"H": 4.6333,
"BB": 1.6333,
"SO": 4.6333,
"HR": 0.4333,
"BF": 20.2667,
"Pitches": 78.0333
},
"rates": {
"ERA": 4.6682,
"WHIP": 1.3178,
"ER_per_IP": 0.51869,
"H_per_IP": 0.9743,
"BB_per_IP": 0.34346,
"SO_per_IP": 0.9743,
"HR_per_IP": 0.09112
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.245,
"predicted_H": 4.033,
"predicted_BB": 1.551,
"predicted_SO": 4.121,
"predicted_HR": 0.676,
"predicted_ERA": 5.0098,
"predicted_WHIP": 1.3843
}
},
"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": 4.1,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.245,
"final": 1.7341,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.033,
"final": 2.7883,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.551,
"final": 1.7353,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.121,
"final": 3.661,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.676,
"final": 0.3986,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0098,
"final": 5.0098,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3843,
"final": 1.3843,
"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": 38.2,
"ER": 21,
"H": 35,
"BB": 16,
"SO": 36,
"HR": 6,
"ERA": 4.887931034482759,
"WHIP": 1.3189655172413794,
"K9": 8.379310344827587,
"HR9": 1.396551724137931,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.0427089086072199,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 3.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 160,
"wins": 101,
"losses": 59,
"win_pct": 0.6312,
"runs_scored": 823.0,
"runs_allowed": 612.0,
"run_differential": 211.0,
"run_differential_per_game": 1.3188,
"avg_runs_scored": 5.1437,
"avg_runs_allowed": 3.825,
"offense_index": 1.1475,
"defense_index": 1.1719,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.9,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.3783
},
"opponent": {
"team": "STL",
"games": 160,
"wins": 77,
"losses": 83,
"win_pct": 0.4813,
"runs_scored": 714.0,
"runs_allowed": 740.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1625,
"avg_runs_scored": 4.4625,
"avg_runs_allowed": 4.625,
"offense_index": 0.9955,
"defense_index": 0.9692,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.0,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.1058
},
"edges": {
"quality_edge": 0.4841,
"offense_edge": 0.1475,
"opponent_offense_edge": -0.0045,
"defense_strength": 0.1719,
"opponent_defense_weakness": 0.0308,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0247,
"run_prevention": 0.9579,
"strikeout": 1.0149
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 581.0,
"k_percent": 22.9,
"bb_percent": 8.1,
"woba": 0.317,
"xwoba": 0.324,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 44.4,
"avg_best_speed": 79.2718,
"avg_hyper_speed": 94.6285,
"whiff_percent": 23.0,
"swing_percent": 47.6
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3243,
"command_and_miss": -0.0021,
"regression_edge": -0.2,
"xwoba_edge": -0.3714,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.9286,
"whiff_edge": -0.3143,
"bb_edge": 0.25,
"pitch_design_score": 0.1569
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 59,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 59,
"pitch_usage": 0.0,
"release_speed": 92.66624874445156,
"release_spin_rate": 2536.673286155761,
"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": 59,
"pitch_usage": 0.0,
"release_speed": 92.66624874445156,
"release_spin_rate": 2536.673286155761,
"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.6662,
"release_spin_rate": 2536.6733,
"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.1569,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1208,
"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.1896,
"sample_weight": 1.0,
"run_prevention_factor": 1.0161,
"strikeout_factor": 0.9926,
"walk_factor": 0.98,
"homer_factor": 1.0554,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669160",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0161,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0161,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0554,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9926,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 78,
"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/20260926_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TB@PHI | away | Griffin Jax | Griffin Jax | True | 5.0 | 3.0 | -6 | 0 | 0 | 0 | 1/2 | 0/0 | 2/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.375,
"WHIP": 1.152439024390244,
"IP": 109.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 4.561,
"recent_avg_IP": 4.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0237,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0486,
"walk_factor": 0.974,
"homer_factor": 1.0464,
"regression_flag": "neutral",
"k_percent": 25.6,
"bb_percent": 7.8,
"woba": 0.299,
"xwoba": 0.32,
"barrel_percent": 8.8,
"hard_hit_percent": 39.7,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 271,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 109.1,
"season_ERA": 3.375,
"season_WHIP": 1.152,
"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": 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": "643377",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 8.0,
"R": 10.0,
"H": 18.0,
"BB": 5.0,
"SO": 23.0,
"HR": 2.0,
"BF": 91.0,
"Pitches": 352.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 2.0,
"H": 3.6,
"BB": 1.0,
"SO": 4.6,
"HR": 0.4,
"BF": 18.2,
"Pitches": 70.4
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.0147,
"ER_per_IP": 0.35294,
"H_per_IP": 0.79412,
"BB_per_IP": 0.22059,
"SO_per_IP": 1.01471,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 21.0,
"R": 24.0,
"H": 39.0,
"BB": 15.0,
"SO": 57.0,
"HR": 4.0,
"BF": 201.0,
"Pitches": 763.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.4,
"H": 3.9,
"BB": 1.5,
"SO": 5.7,
"HR": 0.4,
"BF": 20.1,
"Pitches": 76.3
},
"rates": {
"ERA": 3.8311,
"WHIP": 1.0946,
"ER_per_IP": 0.42568,
"H_per_IP": 0.79054,
"BB_per_IP": 0.30405,
"SO_per_IP": 1.15541,
"HR_per_IP": 0.08108
}
},
"season": {
"games": 32,
"totals": {
"IP": 109.1,
"ER": 41.0,
"R": 51.0,
"H": 92.0,
"BB": 34.0,
"SO": 115.0,
"HR": 15.0,
"BF": 444.0,
"Pitches": 1656.0
},
"per_game": {
"IP": 3.1,
"ER": 1.2812,
"R": 1.5938,
"H": 2.875,
"BB": 1.0625,
"SO": 3.5938,
"HR": 0.4688,
"BF": 13.875,
"Pitches": 51.75
},
"rates": {
"ERA": 3.375,
"WHIP": 1.1524,
"ER_per_IP": 0.375,
"H_per_IP": 0.84146,
"BB_per_IP": 0.31098,
"SO_per_IP": 1.05183,
"HR_per_IP": 0.1372
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.835,
"predicted_H": 3.788,
"predicted_BB": 1.297,
"predicted_SO": 4.825,
"predicted_HR": 0.471,
"predicted_ERA": 3.6043,
"predicted_WHIP": 1.1097
}
},
"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.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.835,
"final": 1.088,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.788,
"final": 2.6531,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.297,
"final": 0.769,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.825,
"final": 3.675,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.471,
"final": 0.2793,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6043,
"final": 3.6043,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1097,
"final": 1.1097,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 21,
"H": 39,
"BB": 15,
"SO": 57,
"HR": 4,
"ERA": 3.8310810810810816,
"WHIP": 1.0945945945945947,
"K9": 10.39864864864865,
"HR9": 0.7297297297297298,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9182040157833614,
"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": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "643377",
"player_name": "Griffin Jax",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 160,
"wins": 97,
"losses": 63,
"win_pct": 0.6062,
"runs_scored": 721.0,
"runs_allowed": 642.0,
"run_differential": 79.0,
"run_differential_per_game": 0.4938,
"avg_runs_scored": 4.5062,
"avg_runs_allowed": 4.0125,
"offense_index": 1.0053,
"defense_index": 1.1172,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.8,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1859
},
"opponent": {
"team": "PHI",
"games": 160,
"wins": 87,
"losses": 73,
"win_pct": 0.5437,
"runs_scored": 705.0,
"runs_allowed": 683.0,
"run_differential": 22.0,
"run_differential_per_game": 0.1375,
"avg_runs_scored": 4.4062,
"avg_runs_allowed": 4.2687,
"offense_index": 0.9829,
"defense_index": 1.0501,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.9,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.019
},
"edges": {
"quality_edge": 0.1669,
"offense_edge": 0.0053,
"opponent_offense_edge": -0.0171,
"defense_strength": 0.1172,
"opponent_defense_weakness": -0.0501,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0109,
"run_prevention": 0.9772,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "643377",
"profile": {
"available": true,
"pitcher_id": "643377",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 407.0,
"k_percent": 25.6,
"bb_percent": 7.8,
"woba": 0.299,
"xwoba": 0.32,
"sweet_spot_percent": 34.0,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 39.7,
"avg_best_speed": 77.7857,
"avg_hyper_speed": 94.1374,
"whiff_percent": 30.1,
"swing_percent": 48.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1166,
"command_and_miss": 0.5414,
"regression_edge": -0.6,
"xwoba_edge": -0.2571,
"barrel_edge": -0.3556,
"hard_hit_edge": -0.2571,
"whiff_edge": 0.7,
"bb_edge": 0.325,
"pitch_design_score": 0.1023
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "643377",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 76,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 91.69040072946703,
"release_spin_rate": 2573.7540952383274,
"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": 76,
"pitch_usage": 0.0,
"release_speed": 91.69040072946703,
"release_spin_rate": 2573.7540952383274,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.6904,
"release_spin_rate": 2573.7541,
"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.1023,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7305,
"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.0237,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0486,
"walk_factor": 0.974,
"homer_factor": 1.0464,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "643377",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.998,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.974,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0464,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0486,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 66,
"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": "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/20260926_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TB@PHI | home | Aaron Nola | Aaron Nola | True | 6.0 | 1.0 | -15 | 2 | 3 | 1 | 4/4 | 3/0 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.54302103250478,
"WHIP": 1.3307839388145315,
"IP": 174.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.448,
"recent_avg_IP": 6.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0232,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0234,
"walk_factor": 0.978,
"homer_factor": 1.0478,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 8.0,
"woba": 0.341,
"xwoba": 0.312,
"barrel_percent": 9.2,
"hard_hit_percent": 39.9,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 32,
"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": "605400",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 10.0,
"SO": 24.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 4.4,
"BB": 2.0,
"SO": 4.8,
"HR": 0.8,
"BF": 24.2,
"Pitches": 93.4
},
"rates": {
"ERA": 2.2979,
"WHIP": 1.0213,
"ER_per_IP": 0.25532,
"H_per_IP": 0.70213,
"BB_per_IP": 0.31915,
"SO_per_IP": 0.76596,
"HR_per_IP": 0.12766
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 17.0,
"R": 17.0,
"H": 47.0,
"BB": 20.0,
"SO": 61.0,
"HR": 10.0,
"BF": 239.0,
"Pitches": 950.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.7,
"H": 4.7,
"BB": 2.0,
"SO": 6.1,
"HR": 1.0,
"BF": 23.9,
"Pitches": 95.0
},
"rates": {
"ERA": 2.5359,
"WHIP": 1.1105,
"ER_per_IP": 0.28177,
"H_per_IP": 0.77901,
"BB_per_IP": 0.33149,
"SO_per_IP": 1.01105,
"HR_per_IP": 0.16575
}
},
"season": {
"games": 32,
"totals": {
"IP": 174.1,
"ER": 88.0,
"R": 90.0,
"H": 173.0,
"BB": 59.0,
"SO": 177.0,
"HR": 36.0,
"BF": 737.0,
"Pitches": 2925.0
},
"per_game": {
"IP": 5.1,
"ER": 2.75,
"R": 2.8125,
"H": 5.4062,
"BB": 1.8438,
"SO": 5.5312,
"HR": 1.125,
"BF": 23.0312,
"Pitches": 91.4062
},
"rates": {
"ERA": 4.543,
"WHIP": 1.3308,
"ER_per_IP": 0.50478,
"H_per_IP": 0.99235,
"BB_per_IP": 0.33843,
"SO_per_IP": 1.0153,
"HR_per_IP": 0.2065
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.053,
"predicted_H": 4.893,
"predicted_BB": 2.011,
"predicted_SO": 5.45,
"predicted_HR": 0.936,
"predicted_ERA": 3.0723,
"predicted_WHIP": 1.148
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.053,
"final": 1.6243,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.893,
"final": 4.5295,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.011,
"final": 2.4136,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.45,
"final": 4.8597,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.936,
"final": 0.555,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0723,
"final": 3.0723,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.148,
"final": 1.148,
"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.1,
"ER": 17,
"H": 47,
"BB": 20,
"SO": 61,
"HR": 10,
"ERA": 2.535911602209945,
"WHIP": 1.110497237569061,
"K9": 9.099447513812155,
"HR9": 1.4917127071823206,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.7728950154847204,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605400",
"player_name": "Aaron Nola",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 160,
"wins": 87,
"losses": 73,
"win_pct": 0.5437,
"runs_scored": 705.0,
"runs_allowed": 683.0,
"run_differential": 22.0,
"run_differential_per_game": 0.1375,
"avg_runs_scored": 4.4062,
"avg_runs_allowed": 4.2687,
"offense_index": 0.9829,
"defense_index": 1.0501,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.9,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.019
},
"opponent": {
"team": "TB",
"games": 160,
"wins": 97,
"losses": 63,
"win_pct": 0.6062,
"runs_scored": 721.0,
"runs_allowed": 642.0,
"run_differential": 79.0,
"run_differential_per_game": 0.4938,
"avg_runs_scored": 4.5062,
"avg_runs_allowed": 4.0125,
"offense_index": 1.0053,
"defense_index": 1.1172,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.8,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1859
},
"edges": {
"quality_edge": -0.1669,
"offense_edge": -0.0171,
"opponent_offense_edge": 0.0053,
"defense_strength": 0.0501,
"opponent_defense_weakness": -0.1172,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9946,
"run_prevention": 1.0042,
"strikeout": 0.9946
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605400",
"profile": {
"available": true,
"pitcher_id": "605400",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 687.0,
"k_percent": 24.0,
"bb_percent": 8.0,
"woba": 0.341,
"xwoba": 0.312,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 39.9,
"avg_best_speed": 76.7384,
"avg_hyper_speed": 94.2368,
"whiff_percent": 27.3,
"swing_percent": 46.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2089,
"command_and_miss": 0.2886,
"regression_edge": 0.8286,
"xwoba_edge": -0.0286,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.2857,
"whiff_edge": 0.3,
"bb_edge": 0.275,
"pitch_design_score": -0.2211
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"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.9161751557338,
"release_spin_rate": 2297.230473518228,
"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.9161751557338,
"release_spin_rate": 2297.230473518228,
"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.9162,
"release_spin_rate": 2297.2305,
"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.2211,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5792,
"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.0232,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0234,
"walk_factor": 0.978,
"homer_factor": 1.0478,
"woba_minus_xwoba": 0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605400",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.998,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0478,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0234,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 112,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -15 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260926_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TEX@MIN | away | Nathan Eovaldi | Nathan Eovaldi | True | 5.0 | 4.1 | -2 | 4 | 1 | -3 | 4/4 | 1/2 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.266509433962264,
"WHIP": 1.2099056603773584,
"IP": 141.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.03,
"recent_avg_IP": 5.467,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0423,
"sample_weight": 1.0,
"run_prevention_factor": 0.9964,
"strikeout_factor": 1.0354,
"walk_factor": 0.928,
"homer_factor": 1.0505,
"regression_flag": "neutral",
"k_percent": 23.7,
"bb_percent": 5.5,
"woba": 0.322,
"xwoba": 0.319,
"barrel_percent": 8.5,
"hard_hit_percent": 41.5,
"whiff_percent": 29.7
},
"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": 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": "543135",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 14.0,
"ER": 6.0,
"R": 6.0,
"H": 14.0,
"BB": 3.0,
"SO": 6.0,
"HR": 0.0,
"BF": 62.0,
"Pitches": 228.0
},
"per_game": {
"IP": 2.2,
"ER": 1.2,
"R": 1.2,
"H": 2.8,
"BB": 0.6,
"SO": 1.2,
"HR": 0.0,
"BF": 12.4,
"Pitches": 45.6
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.2143,
"ER_per_IP": 0.42857,
"H_per_IP": 1.0,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.42857,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 41.0,
"ER": 23.0,
"R": 24.0,
"H": 45.0,
"BB": 10.0,
"SO": 40.0,
"HR": 7.0,
"BF": 181.0,
"Pitches": 678.0
},
"per_game": {
"IP": 4.0,
"ER": 2.3,
"R": 2.4,
"H": 4.5,
"BB": 1.0,
"SO": 4.0,
"HR": 0.7,
"BF": 18.1,
"Pitches": 67.8
},
"rates": {
"ERA": 5.0488,
"WHIP": 1.3415,
"ER_per_IP": 0.56098,
"H_per_IP": 1.09756,
"BB_per_IP": 0.2439,
"SO_per_IP": 0.97561,
"HR_per_IP": 0.17073
}
},
"season": {
"games": 26,
"totals": {
"IP": 141.1,
"ER": 67.0,
"R": 70.0,
"H": 138.0,
"BB": 33.0,
"SO": 141.0,
"HR": 24.0,
"BF": 595.0,
"Pitches": 2149.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5769,
"R": 2.6923,
"H": 5.3077,
"BB": 1.2692,
"SO": 5.4231,
"HR": 0.9231,
"BF": 22.8846,
"Pitches": 82.6538
},
"rates": {
"ERA": 4.2665,
"WHIP": 1.2099,
"ER_per_IP": 0.47406,
"H_per_IP": 0.97642,
"BB_per_IP": 0.23349,
"SO_per_IP": 0.99764,
"HR_per_IP": 0.16981
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.95,
"predicted_H": 4.077,
"predicted_BB": 1.009,
"predicted_SO": 3.057,
"predicted_HR": 0.409,
"predicted_ERA": 4.399,
"predicted_WHIP": 1.2749
}
},
"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": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.95,
"final": 2.8072,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.077,
"final": 4.0448,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.009,
"final": 1.0052,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.057,
"final": 4.7058,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.409,
"final": 1.0743,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.399,
"final": 4.399,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2749,
"final": 1.2749,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 41.0,
"ER": 23,
"H": 45,
"BB": 10,
"SO": 40,
"HR": 7,
"ERA": 5.048780487804878,
"WHIP": 1.3414634146341464,
"K9": 8.78048780487805,
"HR9": 1.5365853658536586,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.0613669195407773,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543135",
"player_name": "Nathan Eovaldi",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"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.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"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.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 663.0,
"runs_allowed": 711.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3,
"avg_runs_scored": 4.1437,
"avg_runs_allowed": 4.4437,
"offense_index": 0.9239,
"defense_index": 1.0092,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0421
},
"opponent": {
"team": "MIN",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 731.0,
"runs_allowed": 787.0,
"run_differential": -56.0,
"run_differential_per_game": -0.35,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 4.9188,
"offense_index": 1.0187,
"defense_index": 0.9118,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.4,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.0292
},
"edges": {
"quality_edge": -0.0129,
"offense_edge": -0.0761,
"opponent_offense_edge": 0.0187,
"defense_strength": 0.0092,
"opponent_defense_weakness": 0.0882,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.999,
"run_prevention": 1.0027,
"strikeout": 0.9981
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543135",
"profile": {
"available": true,
"pitcher_id": "543135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 581.0,
"k_percent": 23.7,
"bb_percent": 5.5,
"woba": 0.322,
"xwoba": 0.319,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 41.5,
"avg_best_speed": 76.8531,
"avg_hyper_speed": 94.3566,
"whiff_percent": 29.7,
"swing_percent": 51.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1575,
"command_and_miss": 0.5143,
"regression_edge": 0.0857,
"xwoba_edge": -0.2286,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.5143,
"whiff_edge": 0.6429,
"bb_edge": 0.9,
"pitch_design_score": -0.1466
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543135",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 67,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 87.24640997938972,
"release_spin_rate": 1886.4896008396245,
"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": 67,
"pitch_usage": 0.0,
"release_speed": 87.24640997938972,
"release_spin_rate": 1886.4896008396245,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.2464,
"release_spin_rate": 1886.4896,
"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.1466,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0471,
"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.0423,
"sample_weight": 1.0,
"run_prevention_factor": 0.9964,
"strikeout_factor": 1.0354,
"walk_factor": 0.928,
"homer_factor": 1.0505,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543135",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9964,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9964,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.928,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0505,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0354,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260926_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TEX@MIN | home | Bailey Ober | Bailey Ober | True | 5.0 | 5.0 | 0 | 1 | 6 | 5 | 3/10 | 2/1 | 1/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.214285714285714,
"WHIP": 1.2619047619047619,
"IP": 126.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.348,
"recent_avg_IP": 4.8,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2811,
"sample_weight": 1.0,
"run_prevention_factor": 1.0239,
"strikeout_factor": 0.9411,
"walk_factor": 0.952,
"homer_factor": 1.0495,
"regression_flag": "neutral",
"k_percent": 17.0,
"bb_percent": 6.7,
"woba": 0.316,
"xwoba": 0.325,
"barrel_percent": 9.6,
"hard_hit_percent": 37.0,
"whiff_percent": 19.9
},
"espn_rank": {
"rank": 88,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641927",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 6.0,
"R": 7.0,
"H": 20.0,
"BB": 10.0,
"SO": 20.0,
"HR": 2.0,
"BF": 100.0,
"Pitches": 383.0
},
"per_game": {
"IP": 4.2,
"ER": 1.2,
"R": 1.4,
"H": 4.0,
"BB": 2.0,
"SO": 4.0,
"HR": 0.4,
"BF": 20.0,
"Pitches": 76.6
},
"rates": {
"ERA": 2.3824,
"WHIP": 1.3235,
"ER_per_IP": 0.26471,
"H_per_IP": 0.88235,
"BB_per_IP": 0.44118,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 22.0,
"R": 24.0,
"H": 52.0,
"BB": 15.0,
"SO": 33.0,
"HR": 6.0,
"BF": 214.0,
"Pitches": 819.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.4,
"H": 5.2,
"BB": 1.5,
"SO": 3.3,
"HR": 0.6,
"BF": 21.4,
"Pitches": 81.9
},
"rates": {
"ERA": 4.0408,
"WHIP": 1.3673,
"ER_per_IP": 0.44898,
"H_per_IP": 1.06122,
"BB_per_IP": 0.30612,
"SO_per_IP": 0.67347,
"HR_per_IP": 0.12245
}
},
"season": {
"games": 24,
"totals": {
"IP": 126.0,
"ER": 59.0,
"R": 63.0,
"H": 123.0,
"BB": 36.0,
"SO": 91.0,
"HR": 19.0,
"BF": 535.0,
"Pitches": 2013.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4583,
"R": 2.625,
"H": 5.125,
"BB": 1.5,
"SO": 3.7917,
"HR": 0.7917,
"BF": 22.2917,
"Pitches": 83.875
},
"rates": {
"ERA": 4.2143,
"WHIP": 1.2619,
"ER_per_IP": 0.46825,
"H_per_IP": 0.97619,
"BB_per_IP": 0.28571,
"SO_per_IP": 0.72222,
"HR_per_IP": 0.15079
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.946,
"predicted_H": 4.769,
"predicted_BB": 1.803,
"predicted_SO": 3.967,
"predicted_HR": 0.586,
"predicted_ERA": 3.5521,
"predicted_WHIP": 1.3328
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.946,
"final": 1.546,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.769,
"final": 4.021,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.803,
"final": 1.8863,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.967,
"final": 2.7124,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.586,
"final": 0.3382,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5521,
"final": 3.5521,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3328,
"final": 1.3328,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.0,
"ER": 22,
"H": 52,
"BB": 15,
"SO": 33,
"HR": 6,
"ERA": 4.040816326530612,
"WHIP": 1.3673469387755102,
"K9": 6.061224489795919,
"HR9": 1.1020408163265305,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9486180395009566,
"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": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641927",
"player_name": "Bailey Ober",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 731.0,
"runs_allowed": 787.0,
"run_differential": -56.0,
"run_differential_per_game": -0.35,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 4.9188,
"offense_index": 1.0187,
"defense_index": 0.9118,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.4,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.0292
},
"opponent": {
"team": "TEX",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 663.0,
"runs_allowed": 711.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3,
"avg_runs_scored": 4.1437,
"avg_runs_allowed": 4.4437,
"offense_index": 0.9239,
"defense_index": 1.0092,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0421
},
"edges": {
"quality_edge": 0.0129,
"offense_edge": 0.0187,
"opponent_offense_edge": -0.0761,
"defense_strength": -0.0882,
"opponent_defense_weakness": -0.0092,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0009,
"run_prevention": 0.996,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641927",
"profile": {
"available": true,
"pitcher_id": "641927",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 497.0,
"k_percent": 17.0,
"bb_percent": 6.7,
"woba": 0.316,
"xwoba": 0.325,
"sweet_spot_percent": 30.1,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 37.0,
"avg_best_speed": 77.8076,
"avg_hyper_speed": 93.9223,
"whiff_percent": 19.9,
"swing_percent": 49.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1995,
"command_and_miss": -0.4664,
"regression_edge": -0.2571,
"xwoba_edge": -0.4,
"barrel_edge": -0.5333,
"hard_hit_edge": 0.1286,
"whiff_edge": -0.7571,
"bb_edge": 0.6,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641927",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 83.59642061883363,
"release_spin_rate": 2144.642798259914,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 83.59642061883363,
"release_spin_rate": 2144.642798259914,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 83.5964,
"release_spin_rate": 2144.6428,
"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.2811,
"sample_weight": 1.0,
"run_prevention_factor": 1.0239,
"strikeout_factor": 0.9411,
"walk_factor": 0.952,
"homer_factor": 1.0495,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641927",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0239,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0239,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.952,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0495,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9411,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was +7."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_ARI@SD | away | Michael Soroka | Michael Soroka | True | 5.1 | 4.2 | -2 | 3 | 3 | 0 | 3/3 | 3/2 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.31437125748503,
"WHIP": 1.0868263473053892,
"IP": 111.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.367,
"recent_avg_IP": 5.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 1.0006,
"walk_factor": 0.936,
"homer_factor": 0.9931,
"regression_flag": "neutral",
"k_percent": 24.2,
"bb_percent": 5.9,
"woba": 0.282,
"xwoba": 0.311,
"barrel_percent": 8.1,
"hard_hit_percent": 33.9,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 72,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "647336",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 13.0,
"R": 14.0,
"H": 19.0,
"BB": 7.0,
"SO": 27.0,
"HR": 3.0,
"BF": 103.0,
"Pitches": 395.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.8,
"H": 3.8,
"BB": 1.4,
"SO": 5.4,
"HR": 0.6,
"BF": 20.6,
"Pitches": 79.0
},
"rates": {
"ERA": 4.68,
"WHIP": 1.04,
"ER_per_IP": 0.52,
"H_per_IP": 0.76,
"BB_per_IP": 0.28,
"SO_per_IP": 1.08,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 19.0,
"R": 20.0,
"H": 35.0,
"BB": 13.0,
"SO": 50.0,
"HR": 5.0,
"BF": 199.0,
"Pitches": 774.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 2.0,
"H": 3.5,
"BB": 1.3,
"SO": 5.0,
"HR": 0.5,
"BF": 19.9,
"Pitches": 77.4
},
"rates": {
"ERA": 3.3974,
"WHIP": 0.9536,
"ER_per_IP": 0.37748,
"H_per_IP": 0.69536,
"BB_per_IP": 0.25828,
"SO_per_IP": 0.99338,
"HR_per_IP": 0.09934
}
},
"season": {
"games": 21,
"totals": {
"IP": 111.1,
"ER": 41.0,
"R": 42.0,
"H": 94.0,
"BB": 27.0,
"SO": 110.0,
"HR": 9.0,
"BF": 454.0,
"Pitches": 1762.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9524,
"R": 2.0,
"H": 4.4762,
"BB": 1.2857,
"SO": 5.2381,
"HR": 0.4286,
"BF": 21.619,
"Pitches": 83.9048
},
"rates": {
"ERA": 3.3144,
"WHIP": 1.0868,
"ER_per_IP": 0.36826,
"H_per_IP": 0.84431,
"BB_per_IP": 0.24251,
"SO_per_IP": 0.98802,
"HR_per_IP": 0.08084
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.322,
"predicted_H": 4.086,
"predicted_BB": 1.468,
"predicted_SO": 5.184,
"predicted_HR": 0.58,
"predicted_ERA": 4.0841,
"predicted_WHIP": 1.0853
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.322,
"final": 2.6144,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.086,
"final": 3.6177,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.468,
"final": 2.1287,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.184,
"final": 5.1047,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.58,
"final": 0.3299,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0841,
"final": 4.0841,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0853,
"final": 1.0853,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 19,
"H": 35,
"BB": 13,
"SO": 50,
"HR": 5,
"ERA": 3.3973509933774833,
"WHIP": 0.9536423841059603,
"K9": 8.940397350993377,
"HR9": 0.8940397350993377,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.8667518021029627,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "647336",
"player_name": "Michael Soroka",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 161,
"wins": 86,
"losses": 75,
"win_pct": 0.5342,
"runs_scored": 735.0,
"runs_allowed": 721.0,
"run_differential": 14.0,
"run_differential_per_game": 0.087,
"avg_runs_scored": 4.5652,
"avg_runs_allowed": 4.4783,
"offense_index": 1.0201,
"defense_index": 0.9994,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 5.1,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0748
},
"opponent": {
"team": "SD",
"games": 161,
"wins": 90,
"losses": 71,
"win_pct": 0.559,
"runs_scored": 713.0,
"runs_allowed": 677.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2236,
"avg_runs_scored": 4.4286,
"avg_runs_allowed": 4.205,
"offense_index": 0.9895,
"defense_index": 1.0643,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.4,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1826
},
"edges": {
"quality_edge": -0.1078,
"offense_edge": 0.0201,
"opponent_offense_edge": -0.0105,
"defense_strength": -0.0006,
"opponent_defense_weakness": -0.0643,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9961,
"run_prevention": 1.0038,
"strikeout": 0.9976
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "647336",
"profile": {
"available": true,
"pitcher_id": "647336",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 406.0,
"k_percent": 24.2,
"bb_percent": 5.9,
"woba": 0.282,
"xwoba": 0.311,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 33.9,
"avg_best_speed": 76.47,
"avg_hyper_speed": 93.368,
"whiff_percent": 23.1,
"swing_percent": 49.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1555,
"command_and_miss": 0.1964,
"regression_edge": -0.8286,
"xwoba_edge": 0.0,
"barrel_edge": -0.2,
"hard_hit_edge": 0.5714,
"whiff_edge": -0.3,
"bb_edge": 0.8,
"pitch_design_score": -0.1158
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "647336",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 87.79524232123826,
"release_spin_rate": 2598.719346360736,
"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": 75,
"pitch_usage": 0.0,
"release_speed": 87.79524232123826,
"release_spin_rate": 2598.719346360736,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.7952,
"release_spin_rate": 2598.7193,
"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.1158,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8275,
"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.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 1.0006,
"walk_factor": 0.936,
"homer_factor": 0.9931,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "647336",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9961,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9961,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.936,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9931,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0006,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260927_ARI@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"
}
} |
| 20260927 | 20260927_ARI@SD | home | Randy Vásquez | Randy Vásquez | True | 5.0 | 6.0 | 3 | 1 | 1 | 0 | 5/3 | 1/0 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.00990099009901,
"WHIP": 1.2995049504950495,
"IP": 134.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.045,
"recent_avg_IP": 5.533,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.738,
"sample_weight": 1.0,
"run_prevention_factor": 1.0627,
"strikeout_factor": 0.9251,
"walk_factor": 0.948,
"homer_factor": 1.1197,
"regression_flag": "negative_pitcher_regression",
"k_percent": 15.0,
"bb_percent": 6.5,
"woba": 0.327,
"xwoba": 0.358,
"barrel_percent": 9.8,
"hard_hit_percent": 43.7,
"whiff_percent": 19.1
},
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681190",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 11.2,
"ER": 5.0,
"R": 5.0,
"H": 14.0,
"BB": 3.0,
"SO": 9.0,
"HR": 1.0,
"BF": 50.0,
"Pitches": 187.0
},
"per_game": {
"IP": 2.1,
"ER": 1.0,
"R": 1.0,
"H": 2.8,
"BB": 0.6,
"SO": 1.8,
"HR": 0.2,
"BF": 10.0,
"Pitches": 37.4
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.4571,
"ER_per_IP": 0.42857,
"H_per_IP": 1.2,
"BB_per_IP": 0.25714,
"SO_per_IP": 0.77143,
"HR_per_IP": 0.08571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 39.2,
"ER": 13.0,
"R": 13.0,
"H": 28.0,
"BB": 7.0,
"SO": 21.0,
"HR": 2.0,
"BF": 152.0,
"Pitches": 574.0
},
"per_game": {
"IP": 4.0,
"ER": 1.3,
"R": 1.3,
"H": 2.8,
"BB": 0.7,
"SO": 2.1,
"HR": 0.2,
"BF": 15.2,
"Pitches": 57.4
},
"rates": {
"ERA": 2.9496,
"WHIP": 0.8824,
"ER_per_IP": 0.32773,
"H_per_IP": 0.70588,
"BB_per_IP": 0.17647,
"SO_per_IP": 0.52941,
"HR_per_IP": 0.05042
}
},
"season": {
"games": 31,
"totals": {
"IP": 134.2,
"ER": 60.0,
"R": 64.0,
"H": 138.0,
"BB": 37.0,
"SO": 85.0,
"HR": 16.0,
"BF": 566.0,
"Pitches": 2158.0
},
"per_game": {
"IP": 4.1,
"ER": 1.9355,
"R": 2.0645,
"H": 4.4516,
"BB": 1.1935,
"SO": 2.7419,
"HR": 0.5161,
"BF": 18.2581,
"Pitches": 69.6129
},
"rates": {
"ERA": 4.0099,
"WHIP": 1.2995,
"ER_per_IP": 0.44554,
"H_per_IP": 1.02475,
"BB_per_IP": 0.27475,
"SO_per_IP": 0.63119,
"HR_per_IP": 0.11881
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.485,
"predicted_H": 3.564,
"predicted_BB": 0.909,
"predicted_SO": 2.508,
"predicted_HR": 0.322,
"predicted_ERA": 3.715,
"predicted_WHIP": 1.2437
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.485,
"final": 1.2868,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.564,
"final": 4.1509,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.909,
"final": 0.9462,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 2.508,
"final": 2.7091,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.322,
"final": 0.1904,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.715,
"final": 3.715,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2437,
"final": 1.2437,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 39.2,
"ER": 13,
"H": 28,
"BB": 7,
"SO": 21,
"HR": 2,
"ERA": 2.949579831932773,
"WHIP": 0.8823529411764705,
"K9": 4.76470588235294,
"HR9": 0.45378151260504196,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.8145953103671955,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681190",
"player_name": "Randy V\u00e1squez",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 161,
"wins": 90,
"losses": 71,
"win_pct": 0.559,
"runs_scored": 713.0,
"runs_allowed": 677.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2236,
"avg_runs_scored": 4.4286,
"avg_runs_allowed": 4.205,
"offense_index": 0.9895,
"defense_index": 1.0643,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.4,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1826
},
"opponent": {
"team": "ARI",
"games": 161,
"wins": 86,
"losses": 75,
"win_pct": 0.5342,
"runs_scored": 735.0,
"runs_allowed": 721.0,
"run_differential": 14.0,
"run_differential_per_game": 0.087,
"avg_runs_scored": 4.5652,
"avg_runs_allowed": 4.4783,
"offense_index": 1.0201,
"defense_index": 0.9994,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 5.1,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0748
},
"edges": {
"quality_edge": 0.1078,
"offense_edge": -0.0105,
"opponent_offense_edge": 0.0201,
"defense_strength": 0.0643,
"opponent_defense_weakness": 0.0006,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0054,
"run_prevention": 0.9914,
"strikeout": 1.0016
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681190",
"profile": {
"available": true,
"pitcher_id": "681190",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 522.0,
"k_percent": 15.0,
"bb_percent": 6.5,
"woba": 0.327,
"xwoba": 0.358,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 43.7,
"avg_best_speed": 82.1,
"avg_hyper_speed": 94.8238,
"whiff_percent": 19.1,
"swing_percent": 50.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8846,
"command_and_miss": -0.625,
"regression_edge": -0.8857,
"xwoba_edge": -1.3429,
"barrel_edge": -0.5778,
"hard_hit_edge": -0.8286,
"whiff_edge": -0.8714,
"bb_edge": 0.65,
"pitch_design_score": 0.1051
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681190",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 43,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 43,
"pitch_usage": 0.0,
"release_speed": 91.73988227165782,
"release_spin_rate": 2568.7449846273253,
"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": 43,
"pitch_usage": 0.0,
"release_speed": 91.73988227165782,
"release_spin_rate": 2568.7449846273253,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.7399,
"release_spin_rate": 2568.745,
"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.1051,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7504,
"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.738,
"sample_weight": 1.0,
"run_prevention_factor": 1.0627,
"strikeout_factor": 0.9251,
"walk_factor": 0.948,
"homer_factor": 1.1197,
"woba_minus_xwoba": -0.031,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "681190",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0627,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0627,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1197,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9251,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260927_ARI@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"
}
} |
| 20260927 | 20260927_ATL@MIA | away | JR Ritchie | JR Ritchie | True | 4.2 | 5.2 | 3 | 3 | 4 | 1 | 6/7 | 2/2 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.788177339901478,
"WHIP": 1.463054187192118,
"IP": 67.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.933,
"recent_avg_IP": 4.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3801,
"sample_weight": 1.0,
"run_prevention_factor": 1.0323,
"strikeout_factor": 0.992,
"walk_factor": 1.092,
"homer_factor": 1.0755,
"regression_flag": "neutral",
"k_percent": 22.0,
"bb_percent": 13.7,
"woba": 0.342,
"xwoba": 0.338,
"barrel_percent": 9.6,
"hard_hit_percent": 39.6,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 487,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702275",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.1,
"ER": 12.0,
"R": 12.0,
"H": 19.0,
"BB": 11.0,
"SO": 22.0,
"HR": 5.0,
"BF": 84.0,
"Pitches": 339.0
},
"per_game": {
"IP": 3.2,
"ER": 2.4,
"R": 2.4,
"H": 3.8,
"BB": 2.2,
"SO": 4.4,
"HR": 1.0,
"BF": 16.8,
"Pitches": 67.8
},
"rates": {
"ERA": 5.8909,
"WHIP": 1.6364,
"ER_per_IP": 0.65455,
"H_per_IP": 1.03636,
"BB_per_IP": 0.6,
"SO_per_IP": 1.2,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 37.0,
"ER": 23.0,
"R": 24.0,
"H": 35.0,
"BB": 23.0,
"SO": 40.0,
"HR": 8.0,
"BF": 168.0,
"Pitches": 669.0
},
"per_game": {
"IP": 3.2,
"ER": 2.3,
"R": 2.4,
"H": 3.5,
"BB": 2.3,
"SO": 4.0,
"HR": 0.8,
"BF": 16.8,
"Pitches": 66.9
},
"rates": {
"ERA": 5.5946,
"WHIP": 1.5676,
"ER_per_IP": 0.62162,
"H_per_IP": 0.94595,
"BB_per_IP": 0.62162,
"SO_per_IP": 1.08108,
"HR_per_IP": 0.21622
}
},
"season": {
"games": 16,
"totals": {
"IP": 67.2,
"ER": 36.0,
"R": 39.0,
"H": 58.0,
"BB": 41.0,
"SO": 66.0,
"HR": 12.0,
"BF": 300.0,
"Pitches": 1191.0
},
"per_game": {
"IP": 4.1,
"ER": 2.25,
"R": 2.4375,
"H": 3.625,
"BB": 2.5625,
"SO": 4.125,
"HR": 0.75,
"BF": 18.75,
"Pitches": 74.4375
},
"rates": {
"ERA": 4.7882,
"WHIP": 1.4631,
"ER_per_IP": 0.53202,
"H_per_IP": 0.85714,
"BB_per_IP": 0.60591,
"SO_per_IP": 0.97537,
"HR_per_IP": 0.17734
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.377,
"predicted_H": 3.896,
"predicted_BB": 2.22,
"predicted_SO": 4.292,
"predicted_HR": 0.856,
"predicted_ERA": 5.3398,
"predicted_WHIP": 1.5266
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.377,
"final": 2.6577,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.896,
"final": 4.8441,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.22,
"final": 2.1209,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.292,
"final": 4.1604,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.856,
"final": 0.4703,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3398,
"final": 5.3398,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5266,
"final": 1.5266,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 37.0,
"ER": 23,
"H": 35,
"BB": 23,
"SO": 40,
"HR": 8,
"ERA": 5.594594594594595,
"WHIP": 1.5675675675675675,
"K9": 9.72972972972973,
"HR9": 1.945945945945946,
"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-22T00:00:00"
},
"recent_form_boost": 1.1292898368264277,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702275",
"player_name": "JR Ritchie",
"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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 161,
"wins": 94,
"losses": 67,
"win_pct": 0.5839,
"runs_scored": 739.0,
"runs_allowed": 621.0,
"run_differential": 118.0,
"run_differential_per_game": 0.7329,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.8571,
"offense_index": 1.0256,
"defense_index": 1.1603,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1964
},
"opponent": {
"team": "MIA",
"games": 161,
"wins": 79,
"losses": 82,
"win_pct": 0.4907,
"runs_scored": 710.0,
"runs_allowed": 709.0,
"run_differential": 1.0,
"run_differential_per_game": 0.0062,
"avg_runs_scored": 4.4099,
"avg_runs_allowed": 4.4037,
"offense_index": 0.9854,
"defense_index": 1.0163,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0071
},
"edges": {
"quality_edge": 0.2035,
"offense_edge": 0.0256,
"opponent_offense_edge": -0.0146,
"defense_strength": 0.1603,
"opponent_defense_weakness": -0.0163,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0135,
"run_prevention": 0.9715,
"strikeout": 1.0073
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702275",
"profile": {
"available": true,
"pitcher_id": "702275",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 276.0,
"k_percent": 22.0,
"bb_percent": 13.7,
"woba": 0.342,
"xwoba": 0.338,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 39.6,
"avg_best_speed": 79.4259,
"avg_hyper_speed": 93.8915,
"whiff_percent": 23.8,
"swing_percent": 42.1
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5536,
"command_and_miss": -0.3,
"regression_edge": 0.1143,
"xwoba_edge": -0.7714,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.2429,
"whiff_edge": -0.2,
"bb_edge": -1.15,
"pitch_design_score": -0.0434
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702275",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 62,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 62,
"pitch_usage": 0.0,
"release_speed": 89.08942457225857,
"release_spin_rate": 2330.1009458662215,
"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": 62,
"pitch_usage": 0.0,
"release_speed": 89.08942457225857,
"release_spin_rate": 2330.1009458662215,
"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.0894,
"release_spin_rate": 2330.1009,
"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.0434,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3098,
"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.3801,
"sample_weight": 1.0,
"run_prevention_factor": 1.0323,
"strikeout_factor": 0.992,
"walk_factor": 1.092,
"homer_factor": 1.0755,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "702275",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0323,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0323,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.092,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0755,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.992,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"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/20260927_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_ATL@MIA | home | Janson Junk | Janson Junk | True | 4.2 | 4.2 | 0 | 3 | 1 | -2 | 3/3 | 0/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.310924369747899,
"WHIP": 1.3109243697478992,
"IP": 119.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 4.917,
"recent_avg_IP": 4.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2274,
"sample_weight": 1.0,
"run_prevention_factor": 1.0193,
"strikeout_factor": 0.912,
"walk_factor": 0.944,
"homer_factor": 1.005,
"regression_flag": "neutral",
"k_percent": 16.6,
"bb_percent": 6.3,
"woba": 0.322,
"xwoba": 0.317,
"barrel_percent": 7.0,
"hard_hit_percent": 38.5,
"whiff_percent": 15.2
},
"espn_rank": {
"rank": 220,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676083",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 11.0,
"R": 11.0,
"H": 22.0,
"BB": 6.0,
"SO": 16.0,
"HR": 2.0,
"BF": 88.0,
"Pitches": 356.0
},
"per_game": {
"IP": 4.0,
"ER": 2.2,
"R": 2.2,
"H": 4.4,
"BB": 1.2,
"SO": 3.2,
"HR": 0.4,
"BF": 17.6,
"Pitches": 71.2
},
"rates": {
"ERA": 4.7903,
"WHIP": 1.3548,
"ER_per_IP": 0.53226,
"H_per_IP": 1.06452,
"BB_per_IP": 0.29032,
"SO_per_IP": 0.77419,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 40.1,
"ER": 17.0,
"R": 18.0,
"H": 41.0,
"BB": 10.0,
"SO": 23.0,
"HR": 3.0,
"BF": 168.0,
"Pitches": 649.0
},
"per_game": {
"IP": 4.0,
"ER": 1.7,
"R": 1.8,
"H": 4.1,
"BB": 1.0,
"SO": 2.3,
"HR": 0.3,
"BF": 16.8,
"Pitches": 64.9
},
"rates": {
"ERA": 3.7934,
"WHIP": 1.2645,
"ER_per_IP": 0.42149,
"H_per_IP": 1.01653,
"BB_per_IP": 0.24793,
"SO_per_IP": 0.57025,
"HR_per_IP": 0.07438
}
},
"season": {
"games": 25,
"totals": {
"IP": 119.0,
"ER": 57.0,
"R": 62.0,
"H": 124.0,
"BB": 32.0,
"SO": 84.0,
"HR": 14.0,
"BF": 505.0,
"Pitches": 1917.0
},
"per_game": {
"IP": 4.2,
"ER": 2.28,
"R": 2.48,
"H": 4.96,
"BB": 1.28,
"SO": 3.36,
"HR": 0.56,
"BF": 20.2,
"Pitches": 76.68
},
"rates": {
"ERA": 4.3109,
"WHIP": 1.3109,
"ER_per_IP": 0.47899,
"H_per_IP": 1.04202,
"BB_per_IP": 0.26891,
"SO_per_IP": 0.70588,
"HR_per_IP": 0.11765
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.06,
"predicted_H": 4.363,
"predicted_BB": 1.221,
"predicted_SO": 3.084,
"predicted_HR": 0.432,
"predicted_ERA": 4.3902,
"predicted_WHIP": 1.3225
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.06,
"final": 2.4552,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.363,
"final": 3.79,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.221,
"final": 0.7077,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.084,
"final": 3.0487,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.432,
"final": 1.0912,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3902,
"final": 4.3902,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3225,
"final": 1.3225,
"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": 40.1,
"ER": 17,
"H": 41,
"BB": 10,
"SO": 23,
"HR": 3,
"ERA": 3.7933884297520657,
"WHIP": 1.2644628099173554,
"K9": 5.132231404958677,
"HR9": 0.6694214876033058,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.919076524340388,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676083",
"player_name": "Janson Junk",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 161,
"wins": 79,
"losses": 82,
"win_pct": 0.4907,
"runs_scored": 710.0,
"runs_allowed": 709.0,
"run_differential": 1.0,
"run_differential_per_game": 0.0062,
"avg_runs_scored": 4.4099,
"avg_runs_allowed": 4.4037,
"offense_index": 0.9854,
"defense_index": 1.0163,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0071
},
"opponent": {
"team": "ATL",
"games": 161,
"wins": 94,
"losses": 67,
"win_pct": 0.5839,
"runs_scored": 739.0,
"runs_allowed": 621.0,
"run_differential": 118.0,
"run_differential_per_game": 0.7329,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.8571,
"offense_index": 1.0256,
"defense_index": 1.1603,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1964
},
"edges": {
"quality_edge": -0.2035,
"offense_edge": -0.0146,
"opponent_offense_edge": 0.0256,
"defense_strength": 0.0163,
"opponent_defense_weakness": -0.1603,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9913,
"run_prevention": 1.0126,
"strikeout": 0.9918
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676083",
"profile": {
"available": true,
"pitcher_id": "676083",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 448.0,
"k_percent": 16.6,
"bb_percent": 6.3,
"woba": 0.322,
"xwoba": 0.317,
"sweet_spot_percent": 29.9,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 38.5,
"avg_best_speed": 79.2265,
"avg_hyper_speed": 94.363,
"whiff_percent": 15.2,
"swing_percent": 48.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0882,
"command_and_miss": -0.7071,
"regression_edge": 0.1429,
"xwoba_edge": -0.1714,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.0857,
"whiff_edge": -1.4286,
"bb_edge": 0.7,
"pitch_design_score": -0.1048
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 52,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 87.99217715516329,
"release_spin_rate": 2229.370088419328,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 87.99217715516329,
"release_spin_rate": 2229.370088419328,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.9922,
"release_spin_rate": 2229.3701,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1048,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7487,
"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.2274,
"sample_weight": 1.0,
"run_prevention_factor": 1.0193,
"strikeout_factor": 0.912,
"walk_factor": 0.944,
"homer_factor": 1.005,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676083",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0193,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0193,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.005,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.912,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 17,
"Pitches": 68,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CHC@BOS | away | Shota Imanaga | Shota Imanaga | True | 5.2 | 1.0 | -14 | 1 | 1 | 0 | 2/1 | 3/0 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.738461538461538,
"WHIP": 1.096153846153846,
"IP": 173.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.591,
"recent_avg_IP": 5.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1919,
"sample_weight": 1.0,
"run_prevention_factor": 0.9837,
"strikeout_factor": 1.0389,
"walk_factor": 0.924,
"homer_factor": 1.0296,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 5.3,
"woba": 0.308,
"xwoba": 0.301,
"barrel_percent": 9.7,
"hard_hit_percent": 36.8,
"whiff_percent": 29.6
},
"espn_rank": {
"rank": 81,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "684007",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 11.0,
"R": 11.0,
"H": 24.0,
"BB": 3.0,
"SO": 27.0,
"HR": 4.0,
"BF": 110.0,
"Pitches": 470.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 4.8,
"BB": 0.6,
"SO": 5.4,
"HR": 0.8,
"BF": 22.0,
"Pitches": 94.0
},
"rates": {
"ERA": 3.5357,
"WHIP": 0.9643,
"ER_per_IP": 0.39286,
"H_per_IP": 0.85714,
"BB_per_IP": 0.10714,
"SO_per_IP": 0.96429,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 22.0,
"R": 23.0,
"H": 49.0,
"BB": 8.0,
"SO": 58.0,
"HR": 12.0,
"BF": 215.0,
"Pitches": 914.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.3,
"H": 4.9,
"BB": 0.8,
"SO": 5.8,
"HR": 1.2,
"BF": 21.5,
"Pitches": 91.4
},
"rates": {
"ERA": 3.7834,
"WHIP": 1.0892,
"ER_per_IP": 0.42038,
"H_per_IP": 0.93631,
"BB_per_IP": 0.15287,
"SO_per_IP": 1.10828,
"HR_per_IP": 0.2293
}
},
"season": {
"games": 31,
"totals": {
"IP": 173.1,
"ER": 72.0,
"R": 74.0,
"H": 153.0,
"BB": 37.0,
"SO": 171.0,
"HR": 34.0,
"BF": 702.0,
"Pitches": 2798.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3226,
"R": 2.3871,
"H": 4.9355,
"BB": 1.1935,
"SO": 5.5161,
"HR": 1.0968,
"BF": 22.6452,
"Pitches": 90.2581
},
"rates": {
"ERA": 3.7385,
"WHIP": 1.0962,
"ER_per_IP": 0.41538,
"H_per_IP": 0.88269,
"BB_per_IP": 0.21346,
"SO_per_IP": 0.98654,
"HR_per_IP": 0.19615
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.347,
"predicted_H": 5.026,
"predicted_BB": 0.986,
"predicted_SO": 5.609,
"predicted_HR": 0.996,
"predicted_ERA": 3.795,
"predicted_WHIP": 1.08
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.347,
"final": 1.7965,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.026,
"final": 3.7893,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.986,
"final": 1.8091,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.609,
"final": 4.1341,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.996,
"final": 0.5889,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.795,
"final": 3.795,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.08,
"final": 1.08,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 22,
"H": 49,
"BB": 8,
"SO": 58,
"HR": 12,
"ERA": 3.78343949044586,
"WHIP": 1.089171974522293,
"K9": 9.97452229299363,
"HR9": 2.0636942675159236,
"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.9135749977835633,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "684007",
"player_name": "Shota Imanaga",
"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": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "CHC",
"games": 161,
"wins": 88,
"losses": 73,
"win_pct": 0.5466,
"runs_scored": 844.0,
"runs_allowed": 701.0,
"run_differential": 143.0,
"run_differential_per_game": 0.8882,
"avg_runs_scored": 5.2422,
"avg_runs_allowed": 4.354,
"offense_index": 1.1713,
"defense_index": 1.0279,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1138
},
"opponent": {
"team": "BOS",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 687.0,
"runs_allowed": 605.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5093,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 3.7578,
"offense_index": 0.9534,
"defense_index": 1.191,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 2.6,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0969
},
"edges": {
"quality_edge": 0.0169,
"offense_edge": 0.1713,
"opponent_offense_edge": -0.0466,
"defense_strength": 0.0279,
"opponent_defense_weakness": -0.191,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0034,
"run_prevention": 0.9889,
"strikeout": 1.0042
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "684007",
"profile": {
"available": true,
"pitcher_id": "684007",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 682.0,
"k_percent": 24.4,
"bb_percent": 5.3,
"woba": 0.308,
"xwoba": 0.301,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 36.8,
"avg_best_speed": 77.3483,
"avg_hyper_speed": 93.819,
"whiff_percent": 29.6,
"swing_percent": 51.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.073,
"command_and_miss": 0.5643,
"regression_edge": 0.2,
"xwoba_edge": 0.2857,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.1571,
"whiff_edge": 0.6286,
"bb_edge": 0.95,
"pitch_design_score": -0.1964
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "684007",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 86.3572383214721,
"release_spin_rate": 2029.4914560010316,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 86.3572383214721,
"release_spin_rate": 2029.4914560010316,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.3572,
"release_spin_rate": 2029.4915,
"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.1964,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.4027,
"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.1919,
"sample_weight": 1.0,
"run_prevention_factor": 0.9837,
"strikeout_factor": 1.0389,
"walk_factor": 0.924,
"homer_factor": 1.0296,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "684007",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9837,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9837,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0296,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0389,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -14 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/20260927_CHC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CHC@BOS | home | Tanner Houck | Tanner Houck | True | 1.0 | 3.0 | 6 | 4 | 3 | -1 | 8/4 | 4/0 | 3/1 | Last 10 before this game (0 available)No pregame recent-game rows were available. {
"model_context": {
"embedded_season": {
"ERA": null,
"WHIP": null,
"IP": null,
"games_started": null,
"games_pitched": null,
"role_avg_IP": null,
"recent_avg_IP": null,
"last_start_IP": null,
"projection_source": "league_average_stable_fallback"
},
"savant": {
"quality_score": null,
"sample_weight": null,
"run_prevention_factor": null,
"strikeout_factor": null,
"walk_factor": null,
"homer_factor": null,
"regression_flag": null,
"k_percent": null,
"bb_percent": null,
"woba": null,
"xwoba": null,
"barrel_percent": null,
"hard_hit_percent": null,
"whiff_percent": null
},
"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": {},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656557",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 0,
"reference_playing_time": 0.1,
"windows": {
"last_5": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"last_10": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"season": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.1,
"predicted_ER": 0.171,
"predicted_H": 0.328,
"predicted_BB": 0.126,
"predicted_SO": 0.312,
"predicted_HR": 0.05,
"predicted_ERA": 4.6139,
"predicted_WHIP": 1.363
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7725,
"form_weight": 0.2275,
"form_reliability": 0.0,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 0.1,
"final": 0.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 0.171,
"final": 3.1289,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 0.328,
"final": 6.2546,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 0.126,
"final": 3.1187,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 0.312,
"final": 2.3885,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.05,
"final": 1.5564,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6139,
"final": 4.6139,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.363,
"final": 1.363,
"source": "form_only"
}
}
},
"recent_form_analysis": null,
"recent_form_boost": null,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 0.1,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656557",
"player_name": "Tanner Houck",
"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": 4.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 0.1,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 1.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 687.0,
"runs_allowed": 605.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5093,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 3.7578,
"offense_index": 0.9534,
"defense_index": 1.191,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 2.6,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0969
},
"opponent": {
"team": "CHC",
"games": 161,
"wins": 88,
"losses": 73,
"win_pct": 0.5466,
"runs_scored": 844.0,
"runs_allowed": 701.0,
"run_differential": 143.0,
"run_differential_per_game": 0.8882,
"avg_runs_scored": 5.2422,
"avg_runs_allowed": 4.354,
"offense_index": 1.1713,
"defense_index": 1.0279,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1138
},
"edges": {
"quality_edge": -0.0169,
"offense_edge": -0.0466,
"opponent_offense_edge": 0.1713,
"defense_strength": 0.191,
"opponent_defense_weakness": -0.0279,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9982,
"run_prevention": 1.0092,
"strikeout": 0.9858
}
},
"simulation_box_score_stats": {
"predicted_IP": 1.0,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 15,
"Pitches": 53,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "NO_PRIOR_HISTORY",
"severity": "critical",
"title": "No prior appearances in the source dataset",
"detail": "The model had no row-level pitching history before this game; any precise box-score line should carry a strong uncertainty warning."
},
{
"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."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260927_CHC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CIN@TOR | away | Brandon Williamson | Brandon Williamson | True | 4.1 | 3.0 | -4 | 1 | 4 | 3 | 3/4 | 1/3 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.89261744966443,
"WHIP": 1.4093959731543624,
"IP": 49.2,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 4.917,
"recent_avg_IP": 4.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5793,
"sample_weight": 0.78,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9648,
"walk_factor": 1.0546,
"homer_factor": 1.0822,
"regression_flag": "neutral",
"k_percent": 15.3,
"bb_percent": 12.6,
"woba": 0.336,
"xwoba": 0.365,
"barrel_percent": 9.3,
"hard_hit_percent": 41.7,
"whiff_percent": 24.0
},
"espn_rank": {
"rank": 396,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682227",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 8.0,
"R": 11.0,
"H": 17.0,
"BB": 7.0,
"SO": 14.0,
"HR": 4.0,
"BF": 87.0,
"Pitches": 313.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 2.2,
"H": 3.4,
"BB": 1.4,
"SO": 2.8,
"HR": 0.8,
"BF": 17.4,
"Pitches": 62.6
},
"rates": {
"ERA": 3.3231,
"WHIP": 1.1077,
"ER_per_IP": 0.36923,
"H_per_IP": 0.78462,
"BB_per_IP": 0.32308,
"SO_per_IP": 0.64615,
"HR_per_IP": 0.18462
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 21.0,
"R": 24.0,
"H": 37.0,
"BB": 25.0,
"SO": 30.0,
"HR": 5.0,
"BF": 193.0,
"Pitches": 737.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1,
"R": 2.4,
"H": 3.7,
"BB": 2.5,
"SO": 3.0,
"HR": 0.5,
"BF": 19.3,
"Pitches": 73.7
},
"rates": {
"ERA": 4.2,
"WHIP": 1.3778,
"ER_per_IP": 0.46667,
"H_per_IP": 0.82222,
"BB_per_IP": 0.55556,
"SO_per_IP": 0.66667,
"HR_per_IP": 0.11111
}
},
"season": {
"games": 11,
"totals": {
"IP": 49.2,
"ER": 27.0,
"R": 30.0,
"H": 43.0,
"BB": 27.0,
"SO": 33.0,
"HR": 8.0,
"BF": 215.0,
"Pitches": 831.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4545,
"R": 2.7273,
"H": 3.9091,
"BB": 2.4545,
"SO": 3.0,
"HR": 0.7273,
"BF": 19.5455,
"Pitches": 75.5455
},
"rates": {
"ERA": 4.8926,
"WHIP": 1.4094,
"ER_per_IP": 0.54362,
"H_per_IP": 0.86577,
"BB_per_IP": 0.54362,
"SO_per_IP": 0.66443,
"HR_per_IP": 0.16107
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.154,
"predicted_H": 4.047,
"predicted_BB": 1.993,
"predicted_SO": 3.474,
"predicted_HR": 0.712,
"predicted_ERA": 4.1533,
"predicted_WHIP": 1.294
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.482,
"form_weight": 0.518,
"form_reliability": 0.6875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.154,
"final": 1.5977,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.047,
"final": 3.5423,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.993,
"final": 1.5143,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.474,
"final": 4.2096,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.712,
"final": 0.3688,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1533,
"final": 4.1533,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.294,
"final": 1.294,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 21,
"H": 37,
"BB": 25,
"SO": 30,
"HR": 5,
"ERA": 4.200000000000001,
"WHIP": 1.377777777777778,
"K9": 6.000000000000001,
"HR9": 1.0000000000000002,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9676532001897913,
"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": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682227",
"player_name": "Brandon Williamson",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 665.0,
"runs_allowed": 821.0,
"run_differential": -156.0,
"run_differential_per_game": -0.9689,
"avg_runs_scored": 4.1304,
"avg_runs_allowed": 5.0994,
"offense_index": 0.9229,
"defense_index": 0.8777,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1481
},
"opponent": {
"team": "TOR",
"games": 161,
"wins": 78,
"losses": 83,
"win_pct": 0.4845,
"runs_scored": 643.0,
"runs_allowed": 693.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3106,
"avg_runs_scored": 3.9938,
"avg_runs_allowed": 4.3043,
"offense_index": 0.8924,
"defense_index": 1.0398,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.8,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1213
},
"edges": {
"quality_edge": -0.0268,
"offense_edge": -0.0771,
"opponent_offense_edge": -0.1076,
"defense_strength": -0.1223,
"opponent_defense_weakness": -0.0398,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9996,
"run_prevention": 0.9964,
"strikeout": 1.0078
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682227",
"profile": {
"available": true,
"pitcher_id": "682227",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 195.0,
"k_percent": 15.3,
"bb_percent": 12.6,
"woba": 0.336,
"xwoba": 0.365,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 41.7,
"avg_best_speed": 77.4531,
"avg_hyper_speed": 94.5238,
"whiff_percent": 24.0,
"swing_percent": 44.2
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8486,
"command_and_miss": -0.6657,
"regression_edge": -0.8286,
"xwoba_edge": -1.5429,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.5429,
"whiff_edge": -0.1714,
"bb_edge": -0.875,
"pitch_design_score": -0.1449
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682227",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 61,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 87.27704792316935,
"release_spin_rate": 2309.9624919465377,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 87.27704792316935,
"release_spin_rate": 2309.9624919465377,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.277,
"release_spin_rate": 2309.9625,
"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.1449,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0347,
"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.5793,
"sample_weight": 0.78,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9648,
"walk_factor": 1.0546,
"homer_factor": 1.0822,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "682227",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0384,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0384,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0426,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0641,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9725,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260927_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CIN@TOR | home | Max Scherzer | Max Scherzer | True | 5.0 | 7.0 | 6 | 4 | 1 | -3 | 6/6 | 2/1 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.141630901287553,
"WHIP": 1.3648068669527895,
"IP": 77.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.569,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2077,
"sample_weight": 1.0,
"run_prevention_factor": 1.0177,
"strikeout_factor": 0.9503,
"walk_factor": 1.02,
"homer_factor": 1.0127,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 10.1,
"woba": 0.33,
"xwoba": 0.32,
"barrel_percent": 8.8,
"hard_hit_percent": 33.8,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 806,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 14.0,
"R": 14.0,
"H": 20.0,
"BB": 9.0,
"SO": 25.0,
"HR": 3.0,
"BF": 112.0,
"Pitches": 422.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 4.0,
"BB": 1.8,
"SO": 5.0,
"HR": 0.6,
"BF": 22.4,
"Pitches": 84.4
},
"rates": {
"ERA": 4.5542,
"WHIP": 1.0482,
"ER_per_IP": 0.50602,
"H_per_IP": 0.72289,
"BB_per_IP": 0.3253,
"SO_per_IP": 0.90361,
"HR_per_IP": 0.10843
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 27.0,
"R": 27.0,
"H": 41.0,
"BB": 20.0,
"SO": 43.0,
"HR": 6.0,
"BF": 220.0,
"Pitches": 847.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.7,
"H": 4.1,
"BB": 2.0,
"SO": 4.3,
"HR": 0.6,
"BF": 22.0,
"Pitches": 84.7
},
"rates": {
"ERA": 4.5849,
"WHIP": 1.1509,
"ER_per_IP": 0.50943,
"H_per_IP": 0.77358,
"BB_per_IP": 0.37736,
"SO_per_IP": 0.81132,
"HR_per_IP": 0.11321
}
},
"season": {
"games": 17,
"totals": {
"IP": 77.2,
"ER": 53.0,
"R": 53.0,
"H": 72.0,
"BB": 34.0,
"SO": 61.0,
"HR": 15.0,
"BF": 337.0,
"Pitches": 1347.0
},
"per_game": {
"IP": 4.2,
"ER": 3.1176,
"R": 3.1176,
"H": 4.2353,
"BB": 2.0,
"SO": 3.5882,
"HR": 0.8824,
"BF": 19.8235,
"Pitches": 79.2353
},
"rates": {
"ERA": 6.1416,
"WHIP": 1.3648,
"ER_per_IP": 0.6824,
"H_per_IP": 0.92704,
"BB_per_IP": 0.43777,
"SO_per_IP": 0.78541,
"HR_per_IP": 0.19313
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.823,
"predicted_H": 4.361,
"predicted_BB": 1.945,
"predicted_SO": 4.574,
"predicted_HR": 0.696,
"predicted_ERA": 4.8214,
"predicted_WHIP": 1.1965
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.823,
"final": 3.348,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.361,
"final": 5.0921,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.945,
"final": 1.9695,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.574,
"final": 4.318,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.696,
"final": 0.3856,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8214,
"final": 4.8214,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1965,
"final": 1.1965,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 27,
"H": 41,
"BB": 20,
"SO": 43,
"HR": 6,
"ERA": 4.584905660377358,
"WHIP": 1.1509433962264148,
"K9": 7.301886792452829,
"HR9": 1.0188679245283017,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 1.00528422744346,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 161,
"wins": 78,
"losses": 83,
"win_pct": 0.4845,
"runs_scored": 643.0,
"runs_allowed": 693.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3106,
"avg_runs_scored": 3.9938,
"avg_runs_allowed": 4.3043,
"offense_index": 0.8924,
"defense_index": 1.0398,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.8,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1213
},
"opponent": {
"team": "CIN",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 665.0,
"runs_allowed": 821.0,
"run_differential": -156.0,
"run_differential_per_game": -0.9689,
"avg_runs_scored": 4.1304,
"avg_runs_allowed": 5.0994,
"offense_index": 0.9229,
"defense_index": 0.8777,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1481
},
"edges": {
"quality_edge": 0.0268,
"offense_edge": -0.1076,
"opponent_offense_edge": -0.0771,
"defense_strength": 0.0398,
"opponent_defense_weakness": 0.1223,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0053,
"run_prevention": 0.9823,
"strikeout": 1.007
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 314.0,
"k_percent": 18.1,
"bb_percent": 10.1,
"woba": 0.33,
"xwoba": 0.32,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 33.8,
"avg_best_speed": 76.4077,
"avg_hyper_speed": 93.3143,
"whiff_percent": 20.4,
"swing_percent": 49.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1514,
"command_and_miss": -0.5407,
"regression_edge": 0.2857,
"xwoba_edge": -0.2571,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.6857,
"bb_edge": -0.25,
"pitch_design_score": -0.1364
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.42749076681898,
"release_spin_rate": 2268.105128057084,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.42749076681898,
"release_spin_rate": 2268.105128057084,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4275,
"release_spin_rate": 2268.1051,
"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.1364,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9746,
"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.2077,
"sample_weight": 1.0,
"run_prevention_factor": 1.0177,
"strikeout_factor": 0.9503,
"walk_factor": 1.02,
"homer_factor": 1.0127,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "453286",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0177,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0177,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0127,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9503,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"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/20260927_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CLE@KC | away | Parker Messick | Parker Messick | True | 6.1 | 3.0 | -10 | 3 | 1 | -2 | 4/6 | 1/1 | 8/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5527272727272727,
"WHIP": 1.0418181818181818,
"IP": 183.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.914,
"recent_avg_IP": 5.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5755,
"sample_weight": 1.0,
"run_prevention_factor": 0.9511,
"strikeout_factor": 1.0263,
"walk_factor": 0.95,
"homer_factor": 0.9023,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 6.6,
"woba": 0.272,
"xwoba": 0.272,
"barrel_percent": 4.9,
"hard_hit_percent": 33.8,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 4,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 183.1,
"season_ERA": 2.553,
"season_WHIP": 1.042,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "800048",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 9.0,
"R": 9.0,
"H": 27.0,
"BB": 7.0,
"SO": 35.0,
"HR": 3.0,
"BF": 119.0,
"Pitches": 485.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 5.4,
"BB": 1.4,
"SO": 7.0,
"HR": 0.6,
"BF": 23.8,
"Pitches": 97.0
},
"rates": {
"ERA": 2.8588,
"WHIP": 1.2,
"ER_per_IP": 0.31765,
"H_per_IP": 0.95294,
"BB_per_IP": 0.24706,
"SO_per_IP": 1.23529,
"HR_per_IP": 0.10588
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 16.0,
"R": 17.0,
"H": 49.0,
"BB": 12.0,
"SO": 69.0,
"HR": 6.0,
"BF": 235.0,
"Pitches": 967.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.7,
"H": 4.9,
"BB": 1.2,
"SO": 6.9,
"HR": 0.6,
"BF": 23.5,
"Pitches": 96.7
},
"rates": {
"ERA": 2.4828,
"WHIP": 1.0517,
"ER_per_IP": 0.27586,
"H_per_IP": 0.84483,
"BB_per_IP": 0.2069,
"SO_per_IP": 1.18966,
"HR_per_IP": 0.10345
}
},
"season": {
"games": 31,
"totals": {
"IP": 183.1,
"ER": 52.0,
"R": 56.0,
"H": 143.0,
"BB": 48.0,
"SO": 191.0,
"HR": 17.0,
"BF": 731.0,
"Pitches": 2884.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6774,
"R": 1.8065,
"H": 4.6129,
"BB": 1.5484,
"SO": 6.1613,
"HR": 0.5484,
"BF": 23.5806,
"Pitches": 93.0323
},
"rates": {
"ERA": 2.5527,
"WHIP": 1.0418,
"ER_per_IP": 0.28364,
"H_per_IP": 0.78,
"BB_per_IP": 0.26182,
"SO_per_IP": 1.04182,
"HR_per_IP": 0.09273
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.883,
"predicted_H": 5.164,
"predicted_BB": 1.477,
"predicted_SO": 6.617,
"predicted_HR": 0.628,
"predicted_ERA": 2.9365,
"predicted_WHIP": 1.1507
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.883,
"final": 2.7482,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.164,
"final": 4.6883,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.477,
"final": 1.2821,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.617,
"final": 7.1822,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.628,
"final": 1.1887,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9365,
"final": 2.9365,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1507,
"final": 1.1507,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 16,
"H": 49,
"BB": 12,
"SO": 69,
"HR": 6,
"ERA": 2.482758620689655,
"WHIP": 1.0517241379310343,
"K9": 10.706896551724137,
"HR9": 0.9310344827586206,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.7663122040212089,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.1,
"delta": 0.1,
"percent_delta": 0.0167,
"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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.1,
"delta": 0.1,
"percent_delta": 0.0167,
"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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 161,
"wins": 85,
"losses": 76,
"win_pct": 0.528,
"runs_scored": 676.0,
"runs_allowed": 664.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0745,
"avg_runs_scored": 4.1988,
"avg_runs_allowed": 4.1242,
"offense_index": 0.9382,
"defense_index": 1.0852,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.173
},
"opponent": {
"team": "KC",
"games": 161,
"wins": 68,
"losses": 93,
"win_pct": 0.4224,
"runs_scored": 687.0,
"runs_allowed": 808.0,
"run_differential": -121.0,
"run_differential_per_game": -0.7516,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 5.0186,
"offense_index": 0.9534,
"defense_index": 0.8918,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 7.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.2633
},
"edges": {
"quality_edge": 0.4363,
"offense_edge": -0.0618,
"opponent_offense_edge": -0.0466,
"defense_strength": 0.0852,
"opponent_defense_weakness": 0.1082,
"recent_win_pct_edge": 0.7
},
"player_factors": {
"ip": 1.0219,
"run_prevention": 0.9622,
"strikeout": 1.0168
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 705.0,
"k_percent": 26.1,
"bb_percent": 6.6,
"woba": 0.272,
"xwoba": 0.272,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 33.8,
"avg_best_speed": 76.152,
"avg_hyper_speed": 93.4301,
"whiff_percent": 25.7,
"swing_percent": 48.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8336,
"command_and_miss": 0.4136,
"regression_edge": 0.0,
"xwoba_edge": 1.1143,
"barrel_edge": 0.5111,
"hard_hit_edge": 0.5857,
"whiff_edge": 0.0714,
"bb_edge": 0.625,
"pitch_design_score": 0.0142
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"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.1175,
"release_spin_rate": 2107.0954,
"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.0142,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1014,
"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.5755,
"sample_weight": 1.0,
"run_prevention_factor": 0.9511,
"strikeout_factor": 1.0263,
"walk_factor": 0.95,
"homer_factor": 0.9023,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800048",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9511,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9511,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.95,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9023,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0263,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"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/20260927_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CLE@KC | home | Daniel Lynch IV | Daniel Lynch IV | True | 5.1 | 5.1 | 0 | 1 | 2 | 1 | 3/7 | 3/0 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.128099173553719,
"WHIP": 1.140495867768595,
"IP": 80.2,
"games_started": null,
"games_pitched": 55,
"role_avg_IP": 3.852,
"recent_avg_IP": 4.467,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2567,
"sample_weight": 1.0,
"run_prevention_factor": 1.0218,
"strikeout_factor": 0.9514,
"walk_factor": 0.974,
"homer_factor": 1.0095,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.2,
"bb_percent": 7.8,
"woba": 0.293,
"xwoba": 0.327,
"barrel_percent": 6.8,
"hard_hit_percent": 38.4,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 269,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 80.2,
"season_ERA": 4.128,
"season_WHIP": 1.14,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.587,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7684,
"prior_weight": 0.2316
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663738",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 55,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 18.0,
"R": 18.0,
"H": 23.0,
"BB": 9.0,
"SO": 11.0,
"HR": 5.0,
"BF": 99.0,
"Pitches": 371.0
},
"per_game": {
"IP": 4.1,
"ER": 3.6,
"R": 3.6,
"H": 4.6,
"BB": 1.8,
"SO": 2.2,
"HR": 1.0,
"BF": 19.8,
"Pitches": 74.2
},
"rates": {
"ERA": 7.2537,
"WHIP": 1.4328,
"ER_per_IP": 0.80597,
"H_per_IP": 1.02985,
"BB_per_IP": 0.40299,
"SO_per_IP": 0.49254,
"HR_per_IP": 0.22388
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 35.2,
"ER": 27.0,
"R": 28.0,
"H": 36.0,
"BB": 14.0,
"SO": 20.0,
"HR": 7.0,
"BF": 155.0,
"Pitches": 560.0
},
"per_game": {
"IP": 3.2,
"ER": 2.7,
"R": 2.8,
"H": 3.6,
"BB": 1.4,
"SO": 2.0,
"HR": 0.7,
"BF": 15.5,
"Pitches": 56.0
},
"rates": {
"ERA": 6.8131,
"WHIP": 1.4019,
"ER_per_IP": 0.75701,
"H_per_IP": 1.00935,
"BB_per_IP": 0.39252,
"SO_per_IP": 0.56075,
"HR_per_IP": 0.19626
}
},
"season": {
"games": 55,
"totals": {
"IP": 80.2,
"ER": 37.0,
"R": 41.0,
"H": 66.0,
"BB": 26.0,
"SO": 54.0,
"HR": 9.0,
"BF": 334.0,
"Pitches": 1224.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6727,
"R": 0.7455,
"H": 1.2,
"BB": 0.4727,
"SO": 0.9818,
"HR": 0.1636,
"BF": 6.0727,
"Pitches": 22.2545
},
"rates": {
"ERA": 4.1281,
"WHIP": 1.1405,
"ER_per_IP": 0.45868,
"H_per_IP": 0.81818,
"BB_per_IP": 0.32231,
"SO_per_IP": 0.66942,
"HR_per_IP": 0.11157
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.635,
"predicted_H": 3.85,
"predicted_BB": 1.5,
"predicted_SO": 2.515,
"predicted_HR": 0.714,
"predicted_ERA": 6.0435,
"predicted_WHIP": 1.3634
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4479,
"form_weight": 0.5521,
"form_reliability": 0.7684,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.587,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7684,
"prior_weight": 0.2316
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.635,
"final": 1.9028,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.85,
"final": 3.4693,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.5,
"final": 2.1718,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.515,
"final": 3.6279,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.714,
"final": 0.8421,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.0435,
"final": 6.0435,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3634,
"final": 1.3634,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 35.2,
"ER": 27,
"H": 36,
"BB": 14,
"SO": 20,
"HR": 7,
"ERA": 6.813084112149533,
"WHIP": 1.4018691588785048,
"K9": 5.046728971962617,
"HR9": 1.766355140186916,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.2622274473341317,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.587,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7684,
"prior_weight": 0.2316
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663738",
"player_name": "Daniel Lynch IV",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 161,
"wins": 68,
"losses": 93,
"win_pct": 0.4224,
"runs_scored": 687.0,
"runs_allowed": 808.0,
"run_differential": -121.0,
"run_differential_per_game": -0.7516,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 5.0186,
"offense_index": 0.9534,
"defense_index": 0.8918,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 7.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.2633
},
"opponent": {
"team": "CLE",
"games": 161,
"wins": 85,
"losses": 76,
"win_pct": 0.528,
"runs_scored": 676.0,
"runs_allowed": 664.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0745,
"avg_runs_scored": 4.1988,
"avg_runs_allowed": 4.1242,
"offense_index": 0.9382,
"defense_index": 1.0852,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.173
},
"edges": {
"quality_edge": -0.4363,
"offense_edge": -0.0466,
"opponent_offense_edge": -0.0618,
"defense_strength": -0.1082,
"opponent_defense_weakness": -0.0852,
"recent_win_pct_edge": -0.7
},
"player_factors": {
"ip": 0.9818,
"run_prevention": 1.0227,
"strikeout": 0.9919
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663738",
"profile": {
"available": true,
"pitcher_id": "663738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 304.0,
"k_percent": 16.2,
"bb_percent": 7.8,
"woba": 0.293,
"xwoba": 0.327,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 38.4,
"avg_best_speed": 78.9256,
"avg_hyper_speed": 94.006,
"whiff_percent": 22.5,
"swing_percent": 46.6
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0783,
"command_and_miss": -0.4429,
"regression_edge": -0.9714,
"xwoba_edge": -0.4571,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.3857,
"bb_edge": 0.325,
"pitch_design_score": -0.0068
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.74268690185157,
"release_spin_rate": 2086.8602213887807,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.74268690185157,
"release_spin_rate": 2086.8602213887807,
"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.7427,
"release_spin_rate": 2086.8602,
"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.0068,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0485,
"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.2567,
"sample_weight": 1.0,
"run_prevention_factor": 1.0218,
"strikeout_factor": 0.9514,
"walk_factor": 0.974,
"homer_factor": 1.0095,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "663738",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0218,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0218,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0095,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9514,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260927_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_COL@CHW | away | Kyle Freeland | Kyle Freeland | True | 4.1 | 4.0 | -1 | 5 | 4 | -1 | 6/7 | 1/0 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.578680203045685,
"WHIP": 1.515228426395939,
"IP": 131.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.253,
"recent_avg_IP": 4.6,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5789,
"sample_weight": 1.0,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9594,
"walk_factor": 0.916,
"homer_factor": 1.141,
"regression_flag": "neutral",
"k_percent": 17.9,
"bb_percent": 4.9,
"woba": 0.382,
"xwoba": 0.354,
"barrel_percent": 11.1,
"hard_hit_percent": 44.0,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 668,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607536",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 14.0,
"R": 16.0,
"H": 32.0,
"BB": 6.0,
"SO": 13.0,
"HR": 6.0,
"BF": 107.0,
"Pitches": 381.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 3.2,
"H": 6.4,
"BB": 1.2,
"SO": 2.6,
"HR": 1.2,
"BF": 21.4,
"Pitches": 76.2
},
"rates": {
"ERA": 5.4783,
"WHIP": 1.6522,
"ER_per_IP": 0.6087,
"H_per_IP": 1.3913,
"BB_per_IP": 0.26087,
"SO_per_IP": 0.56522,
"HR_per_IP": 0.26087
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 34.0,
"R": 36.0,
"H": 65.0,
"BB": 11.0,
"SO": 38.0,
"HR": 11.0,
"BF": 238.0,
"Pitches": 838.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.6,
"H": 6.5,
"BB": 1.1,
"SO": 3.8,
"HR": 1.1,
"BF": 23.8,
"Pitches": 83.8
},
"rates": {
"ERA": 5.6319,
"WHIP": 1.3988,
"ER_per_IP": 0.62577,
"H_per_IP": 1.19632,
"BB_per_IP": 0.20245,
"SO_per_IP": 0.69939,
"HR_per_IP": 0.20245
}
},
"season": {
"games": 25,
"totals": {
"IP": 131.1,
"ER": 96.0,
"R": 100.0,
"H": 170.0,
"BB": 29.0,
"SO": 106.0,
"HR": 27.0,
"BF": 593.0,
"Pitches": 2125.0
},
"per_game": {
"IP": 5.1,
"ER": 3.84,
"R": 4.0,
"H": 6.8,
"BB": 1.16,
"SO": 4.24,
"HR": 1.08,
"BF": 23.72,
"Pitches": 85.0
},
"rates": {
"ERA": 6.5787,
"WHIP": 1.5152,
"ER_per_IP": 0.73096,
"H_per_IP": 1.29442,
"BB_per_IP": 0.22081,
"SO_per_IP": 0.80711,
"HR_per_IP": 0.20558
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.107,
"predicted_H": 6.286,
"predicted_BB": 1.292,
"predicted_SO": 3.552,
"predicted_HR": 1.086,
"predicted_ERA": 5.5624,
"predicted_WHIP": 1.5073
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 3.107,
"final": 4.3233,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.286,
"final": 5.7453,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.292,
"final": 1.1692,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.552,
"final": 5.0016,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.086,
"final": 1.0498,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5624,
"final": 5.5624,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5073,
"final": 1.5073,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 34,
"H": 65,
"BB": 11,
"SO": 38,
"HR": 11,
"ERA": 5.631901840490798,
"WHIP": 1.3987730061349695,
"K9": 6.294478527607363,
"HR9": 1.8220858895705523,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.1292670379539358,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 6,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 6,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607536",
"player_name": "Kyle Freeland",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 6.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 161,
"wins": 58,
"losses": 103,
"win_pct": 0.3602,
"runs_scored": 750.0,
"runs_allowed": 940.0,
"run_differential": -190.0,
"run_differential_per_game": -1.1801,
"avg_runs_scored": 4.6584,
"avg_runs_allowed": 5.8385,
"offense_index": 1.0409,
"defense_index": 0.7665,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.4,
"run_differential": -26.0
},
"available": true,
"quality_score": -0.3689
},
"opponent": {
"team": "CHW",
"games": 161,
"wins": 83,
"losses": 78,
"win_pct": 0.5155,
"runs_scored": 772.0,
"runs_allowed": 718.0,
"run_differential": 54.0,
"run_differential_per_game": 0.3354,
"avg_runs_scored": 4.795,
"avg_runs_allowed": 4.4596,
"offense_index": 1.0714,
"defense_index": 1.0036,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.7,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.0894
},
"edges": {
"quality_edge": -0.4583,
"offense_edge": 0.0409,
"opponent_offense_edge": 0.0714,
"defense_strength": -0.2335,
"opponent_defense_weakness": -0.0036,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9718,
"run_prevention": 1.0577,
"strikeout": 0.9805
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607536",
"profile": {
"available": true,
"pitcher_id": "607536",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 17.9,
"bb_percent": 4.9,
"woba": 0.382,
"xwoba": 0.354,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 44.0,
"avg_best_speed": 79.9509,
"avg_hyper_speed": 95.3359,
"whiff_percent": 22.2,
"swing_percent": 50.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.0601,
"command_and_miss": -0.2036,
"regression_edge": 0.8,
"xwoba_edge": -1.2286,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.4286,
"bb_edge": 1.05,
"pitch_design_score": -0.1543
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607536",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.10896327807998,
"release_spin_rate": 2265.301600180975,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.10896327807998,
"release_spin_rate": 2265.301600180975,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.109,
"release_spin_rate": 2265.3016,
"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.1543,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.102,
"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.5789,
"sample_weight": 1.0,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9594,
"walk_factor": 0.916,
"homer_factor": 1.141,
"woba_minus_xwoba": 0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607536",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0492,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0492,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.916,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.141,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9594,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260927_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_COL@CHW | home | Anthony Kay | Anthony Kay | True | 4.2 | 5.0 | 1 | 3 | 1 | -2 | 5/5 | 1/2 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.529411764705882,
"WHIP": 1.3725490196078431,
"IP": 153.0,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 4.867,
"recent_avg_IP": 4.2,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3608,
"sample_weight": 1.0,
"run_prevention_factor": 1.0307,
"strikeout_factor": 0.9646,
"walk_factor": 0.974,
"homer_factor": 1.0524,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 7.8,
"woba": 0.34,
"xwoba": 0.342,
"barrel_percent": 8.3,
"hard_hit_percent": 39.0,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 171,
"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": "641743",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 17.0,
"R": 20.0,
"H": 26.0,
"BB": 7.0,
"SO": 17.0,
"HR": 3.0,
"BF": 101.0,
"Pitches": 369.0
},
"per_game": {
"IP": 4.1,
"ER": 3.4,
"R": 4.0,
"H": 5.2,
"BB": 1.4,
"SO": 3.4,
"HR": 0.6,
"BF": 20.2,
"Pitches": 73.8
},
"rates": {
"ERA": 7.2857,
"WHIP": 1.5714,
"ER_per_IP": 0.80952,
"H_per_IP": 1.2381,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.80952,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 28.0,
"R": 31.0,
"H": 56.0,
"BB": 13.0,
"SO": 38.0,
"HR": 7.0,
"BF": 222.0,
"Pitches": 820.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 3.1,
"H": 5.6,
"BB": 1.3,
"SO": 3.8,
"HR": 0.7,
"BF": 22.2,
"Pitches": 82.0
},
"rates": {
"ERA": 5.1081,
"WHIP": 1.3986,
"ER_per_IP": 0.56757,
"H_per_IP": 1.13514,
"BB_per_IP": 0.26351,
"SO_per_IP": 0.77027,
"HR_per_IP": 0.14189
}
},
"season": {
"games": 32,
"totals": {
"IP": 153.0,
"ER": 77.0,
"R": 84.0,
"H": 156.0,
"BB": 54.0,
"SO": 125.0,
"HR": 21.0,
"BF": 689.0,
"Pitches": 2714.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4062,
"R": 2.625,
"H": 4.875,
"BB": 1.6875,
"SO": 3.9062,
"HR": 0.6562,
"BF": 21.5312,
"Pitches": 84.8125
},
"rates": {
"ERA": 4.5294,
"WHIP": 1.3725,
"ER_per_IP": 0.50327,
"H_per_IP": 1.01961,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.81699,
"HR_per_IP": 0.13725
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.983,
"predicted_H": 5.263,
"predicted_BB": 1.493,
"predicted_SO": 3.785,
"predicted_HR": 0.661,
"predicted_ERA": 5.7888,
"predicted_WHIP": 1.4565
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.983,
"final": 2.9899,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.263,
"final": 5.1559,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.493,
"final": 1.2923,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.785,
"final": 3.8725,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.661,
"final": 0.799,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7888,
"final": 5.7888,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4565,
"final": 1.4565,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 28,
"H": 56,
"BB": 13,
"SO": 38,
"HR": 7,
"ERA": 5.108108108108108,
"WHIP": 1.3986486486486487,
"K9": 6.9324324324324325,
"HR9": 1.277027027027027,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.070337134123725,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641743",
"player_name": "Anthony Kay",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 161,
"wins": 83,
"losses": 78,
"win_pct": 0.5155,
"runs_scored": 772.0,
"runs_allowed": 718.0,
"run_differential": 54.0,
"run_differential_per_game": 0.3354,
"avg_runs_scored": 4.795,
"avg_runs_allowed": 4.4596,
"offense_index": 1.0714,
"defense_index": 1.0036,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.7,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.0894
},
"opponent": {
"team": "COL",
"games": 161,
"wins": 58,
"losses": 103,
"win_pct": 0.3602,
"runs_scored": 750.0,
"runs_allowed": 940.0,
"run_differential": -190.0,
"run_differential_per_game": -1.1801,
"avg_runs_scored": 4.6584,
"avg_runs_allowed": 5.8385,
"offense_index": 1.0409,
"defense_index": 0.7665,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.4,
"run_differential": -26.0
},
"available": true,
"quality_score": -0.3689
},
"edges": {
"quality_edge": 0.4583,
"offense_edge": 0.0714,
"opponent_offense_edge": 0.0409,
"defense_strength": 0.0036,
"opponent_defense_weakness": 0.2335,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0168,
"run_prevention": 0.9833,
"strikeout": 1.0105
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641743",
"profile": {
"available": true,
"pitcher_id": "641743",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 659.0,
"k_percent": 18.1,
"bb_percent": 7.8,
"woba": 0.34,
"xwoba": 0.342,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 39.0,
"avg_best_speed": 76.6453,
"avg_hyper_speed": 94.2602,
"whiff_percent": 22.9,
"swing_percent": 47.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.496,
"command_and_miss": -0.3007,
"regression_edge": -0.0571,
"xwoba_edge": -0.8857,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.1571,
"whiff_edge": -0.3286,
"bb_edge": 0.325,
"pitch_design_score": 0.0101
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 90.04480777448889,
"release_spin_rate": 2295.850070240423,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 90.04480777448889,
"release_spin_rate": 2295.850070240423,
"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.0448,
"release_spin_rate": 2295.8501,
"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.0101,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0724,
"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.3608,
"sample_weight": 1.0,
"run_prevention_factor": 1.0307,
"strikeout_factor": 0.9646,
"walk_factor": 0.974,
"homer_factor": 1.0524,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641743",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0307,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0307,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0524,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9646,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_HOU@OAK | away | Peter Lambert | Peter Lambert | True | 5.1 | 2.0 | -10 | 4 | 0 | -4 | 7/2 | 3/0 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8655097613882865,
"WHIP": 1.2559652928416487,
"IP": 153.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.488,
"recent_avg_IP": 5.133,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1721,
"sample_weight": 1.0,
"run_prevention_factor": 0.9854,
"strikeout_factor": 1.0091,
"walk_factor": 0.998,
"homer_factor": 0.9704,
"regression_flag": "neutral",
"k_percent": 23.3,
"bb_percent": 9.0,
"woba": 0.302,
"xwoba": 0.298,
"barrel_percent": 6.9,
"hard_hit_percent": 35.6,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": 40,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663567",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 14.0,
"R": 14.0,
"H": 28.0,
"BB": 8.0,
"SO": 28.0,
"HR": 4.0,
"BF": 114.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 2.8,
"H": 5.6,
"BB": 1.6,
"SO": 5.6,
"HR": 0.8,
"BF": 22.8,
"Pitches": 87.2
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.4026,
"ER_per_IP": 0.54545,
"H_per_IP": 1.09091,
"BB_per_IP": 0.31169,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 31.0,
"R": 33.0,
"H": 55.0,
"BB": 20.0,
"SO": 53.0,
"HR": 6.0,
"BF": 227.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1,
"R": 3.3,
"H": 5.5,
"BB": 2.0,
"SO": 5.3,
"HR": 0.6,
"BF": 22.7,
"Pitches": 89.3
},
"rates": {
"ERA": 5.5066,
"WHIP": 1.4803,
"ER_per_IP": 0.61184,
"H_per_IP": 1.08553,
"BB_per_IP": 0.39474,
"SO_per_IP": 1.04605,
"HR_per_IP": 0.11842
}
},
"season": {
"games": 28,
"totals": {
"IP": 153.2,
"ER": 66.0,
"R": 68.0,
"H": 134.0,
"BB": 59.0,
"SO": 153.0,
"HR": 17.0,
"BF": 656.0,
"Pitches": 2602.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3571,
"R": 2.4286,
"H": 4.7857,
"BB": 2.1071,
"SO": 5.4643,
"HR": 0.6071,
"BF": 23.4286,
"Pitches": 92.9286
},
"rates": {
"ERA": 3.8655,
"WHIP": 1.256,
"ER_per_IP": 0.4295,
"H_per_IP": 0.87202,
"BB_per_IP": 0.38395,
"SO_per_IP": 0.99566,
"HR_per_IP": 0.11063
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.76,
"predicted_H": 5.29,
"predicted_BB": 1.833,
"predicted_SO": 5.301,
"predicted_HR": 0.695,
"predicted_ERA": 4.8647,
"predicted_WHIP": 1.3948
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.76,
"final": 3.2734,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.29,
"final": 5.998,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.833,
"final": 2.3161,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.301,
"final": 5.1764,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.695,
"final": 0.4073,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8647,
"final": 4.8647,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3948,
"final": 1.3948,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 31,
"H": 55,
"BB": 20,
"SO": 53,
"HR": 6,
"ERA": 5.506578947368421,
"WHIP": 1.480263157894737,
"K9": 9.414473684210527,
"HR9": 1.0657894736842106,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 1.1172054662716624,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 725.0,
"runs_allowed": 766.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2547,
"avg_runs_scored": 4.5031,
"avg_runs_allowed": 4.7578,
"offense_index": 1.0062,
"defense_index": 0.9407,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.2,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0689
},
"opponent": {
"team": "OAK",
"games": 161,
"wins": 64,
"losses": 97,
"win_pct": 0.3975,
"runs_scored": 699.0,
"runs_allowed": 928.0,
"run_differential": -229.0,
"run_differential_per_game": -1.4224,
"avg_runs_scored": 4.3416,
"avg_runs_allowed": 5.764,
"offense_index": 0.9701,
"defense_index": 0.7765,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 6.7,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.3319
},
"edges": {
"quality_edge": 0.263,
"offense_edge": 0.0062,
"opponent_offense_edge": -0.0299,
"defense_strength": -0.0593,
"opponent_defense_weakness": 0.2235,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0099,
"run_prevention": 0.988,
"strikeout": 1.0103
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 613.0,
"k_percent": 23.3,
"bb_percent": 9.0,
"woba": 0.302,
"xwoba": 0.298,
"sweet_spot_percent": 34.0,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 35.6,
"avg_best_speed": 77.4733,
"avg_hyper_speed": 93.4972,
"whiff_percent": 25.5,
"swing_percent": 48.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2426,
"command_and_miss": 0.1036,
"regression_edge": 0.1143,
"xwoba_edge": 0.3714,
"barrel_edge": 0.0667,
"hard_hit_edge": 0.3286,
"whiff_edge": 0.0429,
"bb_edge": 0.025,
"pitch_design_score": -0.0267
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.38687519162656,
"release_spin_rate": 2204.8030078841884,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.38687519162656,
"release_spin_rate": 2204.8030078841884,
"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.3869,
"release_spin_rate": 2204.803,
"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.0267,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1908,
"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.1721,
"sample_weight": 1.0,
"run_prevention_factor": 0.9854,
"strikeout_factor": 1.0091,
"walk_factor": 0.998,
"homer_factor": 0.9704,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663567",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9854,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9854,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9704,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0091,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260927_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_HOU@OAK | home | Seth Johnson | Seth Johnson | True | 4.0 | 1.2 | -7 | 7 | 0 | -7 | 8/1 | 1/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.0625,
"WHIP": 1.5625,
"IP": 32.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 1.231,
"recent_avg_IP": 1.8,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1625,
"sample_weight": 0.516,
"run_prevention_factor": 1.0138,
"strikeout_factor": 1.0153,
"walk_factor": 1.0299,
"homer_factor": 1.0726,
"regression_flag": "positive_pitcher_regression",
"k_percent": 25.3,
"bb_percent": 12.0,
"woba": 0.373,
"xwoba": 0.331,
"barrel_percent": 12.0,
"hard_hit_percent": 44.6,
"whiff_percent": 27.1
},
"espn_rank": {
"rank": 716,
"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": 6.58,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5682,
"prior_weight": 0.4318
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686751",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.0,
"ER": 5.0,
"R": 5.0,
"H": 11.0,
"BB": 1.0,
"SO": 8.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 121.0
},
"per_game": {
"IP": 1.2,
"ER": 1.0,
"R": 1.0,
"H": 2.2,
"BB": 0.2,
"SO": 1.6,
"HR": 0.4,
"BF": 7.6,
"Pitches": 24.2
},
"rates": {
"ERA": 5.0,
"WHIP": 1.3333,
"ER_per_IP": 0.55556,
"H_per_IP": 1.22222,
"BB_per_IP": 0.11111,
"SO_per_IP": 0.88889,
"HR_per_IP": 0.22222
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 15.2,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 3.0,
"SO": 18.0,
"HR": 3.0,
"BF": 66.0,
"Pitches": 235.0
},
"per_game": {
"IP": 1.2,
"ER": 0.8,
"R": 0.8,
"H": 1.8,
"BB": 0.3,
"SO": 1.8,
"HR": 0.3,
"BF": 6.6,
"Pitches": 23.5
},
"rates": {
"ERA": 4.5957,
"WHIP": 1.3404,
"ER_per_IP": 0.51064,
"H_per_IP": 1.14894,
"BB_per_IP": 0.19149,
"SO_per_IP": 1.14894,
"HR_per_IP": 0.19149
}
},
"season": {
"games": 26,
"totals": {
"IP": 32.0,
"ER": 18.0,
"R": 20.0,
"H": 33.0,
"BB": 17.0,
"SO": 38.0,
"HR": 4.0,
"BF": 146.0,
"Pitches": 558.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6923,
"R": 0.7692,
"H": 1.2692,
"BB": 0.6538,
"SO": 1.4615,
"HR": 0.1538,
"BF": 5.6154,
"Pitches": 21.4615
},
"rates": {
"ERA": 5.0625,
"WHIP": 1.5625,
"ER_per_IP": 0.5625,
"H_per_IP": 1.03125,
"BB_per_IP": 0.53125,
"SO_per_IP": 1.1875,
"HR_per_IP": 0.125
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.394,
"predicted_H": 2.855,
"predicted_BB": 0.766,
"predicted_SO": 2.623,
"predicted_HR": 0.457,
"predicted_ERA": 4.76,
"predicted_WHIP": 1.3736
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5324,
"form_weight": 0.4676,
"form_reliability": 0.5682,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.58,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5682,
"prior_weight": 0.4318
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 2.2,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 8.0,
"form": 1.394,
"final": 4.9113,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 2.855,
"final": 5.0619,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.766,
"final": 0.8906,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.623,
"final": 3.3562,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.457,
"final": 1.811,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.76,
"final": 4.76,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3736,
"final": 1.3736,
"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": 13.2,
"ER": 7,
"H": 15,
"BB": 3,
"SO": 14,
"HR": 2,
"ERA": 4.609756097560976,
"WHIP": 1.3170731707317074,
"K9": 9.219512195121952,
"HR9": 1.3170731707317074,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 1.0055861390205278,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 8.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.58,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5682,
"prior_weight": 0.4318
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686751",
"player_name": "Seth Johnson",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 8.0,
"predicted_H": 7.0,
"predicted_HR": 3.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 8.0,
"predicted_H": 8.0,
"predicted_HR": 3.0,
"predicted_IP": 4.0,
"predicted_R": 8.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "boosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 161,
"wins": 64,
"losses": 97,
"win_pct": 0.3975,
"runs_scored": 699.0,
"runs_allowed": 928.0,
"run_differential": -229.0,
"run_differential_per_game": -1.4224,
"avg_runs_scored": 4.3416,
"avg_runs_allowed": 5.764,
"offense_index": 0.9701,
"defense_index": 0.7765,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 6.7,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.3319
},
"opponent": {
"team": "HOU",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 725.0,
"runs_allowed": 766.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2547,
"avg_runs_scored": 4.5031,
"avg_runs_allowed": 4.7578,
"offense_index": 1.0062,
"defense_index": 0.9407,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.2,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0689
},
"edges": {
"quality_edge": -0.263,
"offense_edge": -0.0299,
"opponent_offense_edge": 0.0062,
"defense_strength": -0.2235,
"opponent_defense_weakness": 0.0593,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9825,
"run_prevention": 1.0365,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686751",
"profile": {
"available": true,
"pitcher_id": "686751",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 129.0,
"k_percent": 25.3,
"bb_percent": 12.0,
"woba": 0.373,
"xwoba": 0.331,
"sweet_spot_percent": 41.3,
"barrel_batted_rate": 12.0,
"hard_hit_percent": 44.6,
"avg_best_speed": 79.2113,
"avg_hyper_speed": 94.2448,
"whiff_percent": 27.1,
"swing_percent": 46.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8776,
"command_and_miss": 0.1621,
"regression_edge": 1.2,
"xwoba_edge": -0.5714,
"barrel_edge": -1.0667,
"hard_hit_edge": -0.9571,
"whiff_edge": 0.2714,
"bb_edge": -0.725,
"pitch_design_score": 0.1807
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686751",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 22,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 93.09071620904594,
"release_spin_rate": 2440.9411506876427,
"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": 22,
"pitch_usage": 0.0,
"release_speed": 93.09071620904594,
"release_spin_rate": 2440.9411506876427,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.0907,
"release_spin_rate": 2440.9412,
"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.1807,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2907,
"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.1625,
"sample_weight": 0.516,
"run_prevention_factor": 1.0138,
"strikeout_factor": 1.0153,
"walk_factor": 1.0299,
"homer_factor": 1.0726,
"woba_minus_xwoba": 0.042,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "686751",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0071,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0071,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0154,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0375,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0079,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 8,
"predicted_R": 8,
"predicted_ER": 8,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 21,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 7",
"detail": "Actual minus predicted earned runs was -7; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was -7."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 7 ER."
}
],
"provenance": {
"prediction": "output/games/20260927_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAA@SEA | away | Yusei Kikuchi | Yusei Kikuchi | True | 5.0 | 5.0 | 0 | 4 | 3 | -1 | 6/6 | 1/1 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.882978723404255,
"WHIP": 1.547872340425532,
"IP": 62.2,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 4.821,
"recent_avg_IP": 5.333,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4306,
"sample_weight": 1.0,
"run_prevention_factor": 1.0366,
"strikeout_factor": 0.9886,
"walk_factor": 1.024,
"homer_factor": 1.1045,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 10.3,
"woba": 0.349,
"xwoba": 0.343,
"barrel_percent": 8.9,
"hard_hit_percent": 46.1,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 284,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "579328",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 9.0,
"R": 10.0,
"H": 26.0,
"BB": 14.0,
"SO": 23.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 456.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 2.0,
"H": 5.2,
"BB": 2.8,
"SO": 4.6,
"HR": 0.4,
"BF": 23.4,
"Pitches": 91.2
},
"rates": {
"ERA": 3.0375,
"WHIP": 1.5,
"ER_per_IP": 0.3375,
"H_per_IP": 0.975,
"BB_per_IP": 0.525,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 23.0,
"R": 24.0,
"H": 48.0,
"BB": 23.0,
"SO": 44.0,
"HR": 6.0,
"BF": 212.0,
"Pitches": 838.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3,
"R": 2.4,
"H": 4.8,
"BB": 2.3,
"SO": 4.4,
"HR": 0.6,
"BF": 21.2,
"Pitches": 83.8
},
"rates": {
"ERA": 4.3125,
"WHIP": 1.4792,
"ER_per_IP": 0.47917,
"H_per_IP": 1.0,
"BB_per_IP": 0.47917,
"SO_per_IP": 0.91667,
"HR_per_IP": 0.125
}
},
"season": {
"games": 13,
"totals": {
"IP": 62.2,
"ER": 34.0,
"R": 35.0,
"H": 68.0,
"BB": 29.0,
"SO": 60.0,
"HR": 7.0,
"BF": 282.0,
"Pitches": 1112.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6154,
"R": 2.6923,
"H": 5.2308,
"BB": 2.2308,
"SO": 4.6154,
"HR": 0.5385,
"BF": 21.6923,
"Pitches": 85.5385
},
"rates": {
"ERA": 4.883,
"WHIP": 1.5479,
"ER_per_IP": 0.54255,
"H_per_IP": 1.08511,
"BB_per_IP": 0.46277,
"SO_per_IP": 0.95745,
"HR_per_IP": 0.1117
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.247,
"predicted_H": 4.974,
"predicted_BB": 2.309,
"predicted_SO": 4.53,
"predicted_HR": 0.565,
"predicted_ERA": 4.0643,
"predicted_WHIP": 1.4636
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.247,
"final": 3.0663,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.974,
"final": 5.4535,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.309,
"final": 1.6972,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.53,
"final": 6.1518,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.565,
"final": 1.2357,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0643,
"final": 4.0643,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4636,
"final": 1.4636,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 23,
"H": 48,
"BB": 23,
"SO": 44,
"HR": 6,
"ERA": 4.3125,
"WHIP": 1.4791666666666667,
"K9": 8.25,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9828441724120134,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "579328",
"player_name": "Yusei Kikuchi",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 161,
"wins": 62,
"losses": 99,
"win_pct": 0.3851,
"runs_scored": 652.0,
"runs_allowed": 745.0,
"run_differential": -93.0,
"run_differential_per_game": -0.5776,
"avg_runs_scored": 4.0497,
"avg_runs_allowed": 4.6273,
"offense_index": 0.9049,
"defense_index": 0.9672,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.0,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.2036
},
"opponent": {
"team": "SEA",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 657.0,
"runs_allowed": 719.0,
"run_differential": -62.0,
"run_differential_per_game": -0.3851,
"avg_runs_scored": 4.0807,
"avg_runs_allowed": 4.4658,
"offense_index": 0.9118,
"defense_index": 1.0022,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0764
},
"edges": {
"quality_edge": -0.1272,
"offense_edge": -0.0951,
"opponent_offense_edge": -0.0882,
"defense_strength": -0.0328,
"opponent_defense_weakness": -0.0022,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9975,
"run_prevention": 0.9955,
"strikeout": 1.0032
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "579328",
"profile": {
"available": true,
"pitcher_id": "579328",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 259.0,
"k_percent": 21.3,
"bb_percent": 10.3,
"woba": 0.349,
"xwoba": 0.343,
"sweet_spot_percent": 33.5,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 46.1,
"avg_best_speed": 80.0911,
"avg_hyper_speed": 95.6181,
"whiff_percent": 23.9,
"swing_percent": 48.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7215,
"command_and_miss": -0.17,
"regression_edge": 0.1714,
"xwoba_edge": -0.9143,
"barrel_edge": -0.3778,
"hard_hit_edge": -1.1714,
"whiff_edge": -0.1857,
"bb_edge": -0.3,
"pitch_design_score": 0.0058
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "579328",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.96673905289315,
"release_spin_rate": 2207.8213288952597,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.96673905289315,
"release_spin_rate": 2207.8213288952597,
"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.9667,
"release_spin_rate": 2207.8213,
"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.0058,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0411,
"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.4306,
"sample_weight": 1.0,
"run_prevention_factor": 1.0366,
"strikeout_factor": 0.9886,
"walk_factor": 1.024,
"homer_factor": 1.1045,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "579328",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0366,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0366,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.024,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1045,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9886,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAA@SEA | home | Logan Gilbert | Logan Gilbert | True | 5.2 | 4.0 | -5 | 0 | 0 | 0 | 4/0 | 0/1 | 10/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8076923076923075,
"WHIP": 1.1043956043956045,
"IP": 182.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.871,
"recent_avg_IP": 5.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2007,
"sample_weight": 1.0,
"run_prevention_factor": 0.9829,
"strikeout_factor": 1.0566,
"walk_factor": 0.948,
"homer_factor": 1.0584,
"regression_flag": "neutral",
"k_percent": 26.7,
"bb_percent": 6.5,
"woba": 0.303,
"xwoba": 0.297,
"barrel_percent": 10.1,
"hard_hit_percent": 41.2,
"whiff_percent": 30.4
},
"espn_rank": {
"rank": 34,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669302",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 19.0,
"R": 19.0,
"H": 33.0,
"BB": 9.0,
"SO": 35.0,
"HR": 8.0,
"BF": 121.0,
"Pitches": 463.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8,
"R": 3.8,
"H": 6.6,
"BB": 1.8,
"SO": 7.0,
"HR": 1.6,
"BF": 24.2,
"Pitches": 92.6
},
"rates": {
"ERA": 6.4125,
"WHIP": 1.575,
"ER_per_IP": 0.7125,
"H_per_IP": 1.2375,
"BB_per_IP": 0.3375,
"SO_per_IP": 1.3125,
"HR_per_IP": 0.3
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 29.0,
"R": 29.0,
"H": 55.0,
"BB": 21.0,
"SO": 64.0,
"HR": 14.0,
"BF": 241.0,
"Pitches": 951.0
},
"per_game": {
"IP": 5.2,
"ER": 2.9,
"R": 2.9,
"H": 5.5,
"BB": 2.1,
"SO": 6.4,
"HR": 1.4,
"BF": 24.1,
"Pitches": 95.1
},
"rates": {
"ERA": 4.6331,
"WHIP": 1.3491,
"ER_per_IP": 0.51479,
"H_per_IP": 0.97633,
"BB_per_IP": 0.37278,
"SO_per_IP": 1.13609,
"HR_per_IP": 0.24852
}
},
"season": {
"games": 31,
"totals": {
"IP": 182.0,
"ER": 77.0,
"R": 77.0,
"H": 153.0,
"BB": 48.0,
"SO": 197.0,
"HR": 29.0,
"BF": 737.0,
"Pitches": 2922.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4839,
"R": 2.4839,
"H": 4.9355,
"BB": 1.5484,
"SO": 6.3548,
"HR": 0.9355,
"BF": 23.7742,
"Pitches": 94.2581
},
"rates": {
"ERA": 3.8077,
"WHIP": 1.1044,
"ER_per_IP": 0.42308,
"H_per_IP": 0.84066,
"BB_per_IP": 0.26374,
"SO_per_IP": 1.08242,
"HR_per_IP": 0.15934
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.219,
"predicted_H": 5.904,
"predicted_BB": 1.909,
"predicted_SO": 6.532,
"predicted_HR": 1.339,
"predicted_ERA": 5.1778,
"predicted_WHIP": 1.3964
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 3.219,
"final": 1.9034,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.904,
"final": 5.1259,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.909,
"final": 1.1288,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 10.0,
"form": 6.532,
"final": 7.9493,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.339,
"final": 0.7918,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1778,
"final": 5.1778,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3964,
"final": 1.3964,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 29,
"H": 55,
"BB": 21,
"SO": 64,
"HR": 14,
"ERA": 4.633136094674556,
"WHIP": 1.349112426035503,
"K9": 10.224852071005916,
"HR9": 2.2366863905325443,
"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": 1.0156643770471219,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 10.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 10,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669302",
"player_name": "Logan Gilbert",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 10.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": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 10.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.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": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.0,
"predicted_SO": 10.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 657.0,
"runs_allowed": 719.0,
"run_differential": -62.0,
"run_differential_per_game": -0.3851,
"avg_runs_scored": 4.0807,
"avg_runs_allowed": 4.4658,
"offense_index": 0.9118,
"defense_index": 1.0022,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0764
},
"opponent": {
"team": "LAA",
"games": 161,
"wins": 62,
"losses": 99,
"win_pct": 0.3851,
"runs_scored": 652.0,
"runs_allowed": 745.0,
"run_differential": -93.0,
"run_differential_per_game": -0.5776,
"avg_runs_scored": 4.0497,
"avg_runs_allowed": 4.6273,
"offense_index": 0.9049,
"defense_index": 0.9672,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.0,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.2036
},
"edges": {
"quality_edge": 0.1272,
"offense_edge": -0.0882,
"opponent_offense_edge": -0.0951,
"defense_strength": 0.0022,
"opponent_defense_weakness": 0.0328,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.009,
"run_prevention": 0.9782,
"strikeout": 1.0114
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669302",
"profile": {
"available": true,
"pitcher_id": "669302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 680.0,
"k_percent": 26.7,
"bb_percent": 6.5,
"woba": 0.303,
"xwoba": 0.297,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 41.2,
"avg_best_speed": 78.9253,
"avg_hyper_speed": 94.3788,
"whiff_percent": 30.4,
"swing_percent": 50.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0079,
"command_and_miss": 0.6921,
"regression_edge": 0.1714,
"xwoba_edge": 0.4,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.4714,
"whiff_edge": 0.7429,
"bb_edge": 0.65,
"pitch_design_score": -0.0099
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68670804198848,
"release_spin_rate": 1934.7185998494679,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68670804198848,
"release_spin_rate": 1934.7185998494679,
"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.6867,
"release_spin_rate": 1934.7186,
"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.0099,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0709,
"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.2007,
"sample_weight": 1.0,
"run_prevention_factor": 0.9829,
"strikeout_factor": 1.0566,
"walk_factor": 0.948,
"homer_factor": 1.0584,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669302",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9829,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9829,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0584,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0566,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 10,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260927_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAD@SF | away | Jack Dreyer | Jack Dreyer | True | 5.0 | 2.0 | -9 | 1 | 1 | 0 | 3/2 | 2/0 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1595744680851063,
"WHIP": 1.1010638297872342,
"IP": 62.2,
"games_started": null,
"games_pitched": 66,
"role_avg_IP": 1.0,
"recent_avg_IP": 1.0,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3395,
"sample_weight": 0.932,
"run_prevention_factor": 0.9711,
"strikeout_factor": 1.0485,
"walk_factor": 1.0,
"homer_factor": 1.0023,
"regression_flag": "neutral",
"k_percent": 28.0,
"bb_percent": 9.1,
"woba": 0.27,
"xwoba": 0.29,
"barrel_percent": 7.1,
"hard_hit_percent": 41.8,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 159,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 62.2,
"season_ERA": 3.16,
"season_WHIP": 1.101,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.886,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7204,
"prior_weight": 0.2796
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676263",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 66,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 3.0,
"SO": 3.0,
"HR": 0.0,
"BF": 23.0,
"Pitches": 80.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.6,
"SO": 0.6,
"HR": 0.0,
"BF": 4.6,
"Pitches": 16.0
},
"rates": {
"ERA": 5.0625,
"WHIP": 1.3125,
"ER_per_IP": 0.5625,
"H_per_IP": 0.75,
"BB_per_IP": 0.5625,
"SO_per_IP": 0.5625,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 5.0,
"R": 5.0,
"H": 9.0,
"BB": 5.0,
"SO": 5.0,
"HR": 0.0,
"BF": 41.0,
"Pitches": 146.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.9,
"BB": 0.5,
"SO": 0.5,
"HR": 0.0,
"BF": 4.1,
"Pitches": 14.6
},
"rates": {
"ERA": 4.8214,
"WHIP": 1.5,
"ER_per_IP": 0.53571,
"H_per_IP": 0.96429,
"BB_per_IP": 0.53571,
"SO_per_IP": 0.53571,
"HR_per_IP": 0.0
}
},
"season": {
"games": 66,
"totals": {
"IP": 62.2,
"ER": 22.0,
"R": 22.0,
"H": 46.0,
"BB": 23.0,
"SO": 71.0,
"HR": 7.0,
"BF": 254.0,
"Pitches": 1005.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3333,
"R": 0.3333,
"H": 0.697,
"BB": 0.3485,
"SO": 1.0758,
"HR": 0.1061,
"BF": 3.8485,
"Pitches": 15.2273
},
"rates": {
"ERA": 3.1596,
"WHIP": 1.1011,
"ER_per_IP": 0.35106,
"H_per_IP": 0.73404,
"BB_per_IP": 0.36702,
"SO_per_IP": 1.13298,
"HR_per_IP": 0.1117
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.226,
"predicted_H": 2.079,
"predicted_BB": 1.142,
"predicted_SO": 1.78,
"predicted_HR": 0.138,
"predicted_ERA": 4.6021,
"predicted_WHIP": 1.3434
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4681,
"form_weight": 0.5319,
"form_reliability": 0.7204,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.886,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7204,
"prior_weight": 0.2796
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.226,
"final": 1.1202,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.079,
"final": 2.5101,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.142,
"final": 1.5437,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 1.78,
"final": 4.2236,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.138,
"final": 1.0097,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6021,
"final": 4.6021,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3434,
"final": 1.3434,
"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.1,
"ER": 5,
"H": 9,
"BB": 5,
"SO": 5,
"HR": 0,
"ERA": 4.821428571428572,
"WHIP": 1.5000000000000002,
"K9": 4.821428571428572,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 1.0126672402765533,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.886,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7204,
"prior_weight": 0.2796
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 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_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676263",
"player_name": "Jack Dreyer",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_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": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_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": 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": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 161,
"wins": 99,
"losses": 62,
"win_pct": 0.6149,
"runs_scored": 796.0,
"runs_allowed": 599.0,
"run_differential": 197.0,
"run_differential_per_game": 1.2236,
"avg_runs_scored": 4.9441,
"avg_runs_allowed": 3.7205,
"offense_index": 1.1047,
"defense_index": 1.2029,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.7,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.318
},
"opponent": {
"team": "SF",
"games": 161,
"wins": 65,
"losses": 96,
"win_pct": 0.4037,
"runs_scored": 668.0,
"runs_allowed": 755.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5404,
"avg_runs_scored": 4.1491,
"avg_runs_allowed": 4.6894,
"offense_index": 0.9271,
"defense_index": 0.9544,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2183
},
"edges": {
"quality_edge": 0.5363,
"offense_edge": 0.1047,
"opponent_offense_edge": -0.0729,
"defense_strength": 0.2029,
"opponent_defense_weakness": 0.0456,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0305,
"run_prevention": 0.9412,
"strikeout": 1.0219
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676263",
"profile": {
"available": true,
"pitcher_id": "676263",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 233.0,
"k_percent": 28.0,
"bb_percent": 9.1,
"woba": 0.27,
"xwoba": 0.29,
"sweet_spot_percent": 25.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 41.8,
"avg_best_speed": 77.8558,
"avg_hyper_speed": 94.7984,
"whiff_percent": 28.3,
"swing_percent": 48.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5003,
"command_and_miss": 0.5407,
"regression_edge": -0.5714,
"xwoba_edge": 0.6,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.5571,
"whiff_edge": 0.4429,
"bb_edge": 0.0,
"pitch_design_score": 0.0087
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676263",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 90.01857852918194,
"release_spin_rate": 2458.5593322273385,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 90.01857852918194,
"release_spin_rate": 2458.5593322273385,
"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.0186,
"release_spin_rate": 2458.5593,
"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.0087,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0619,
"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.3395,
"sample_weight": 0.932,
"run_prevention_factor": 0.9711,
"strikeout_factor": 1.0485,
"walk_factor": 1.0,
"homer_factor": 1.0023,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676263",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9731,
"adjusted": 2
},
"predicted_H": {
"original": 2.0,
"factor": 0.9731,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0021,
"adjusted": 0
},
"predicted_SO": {
"original": 9.0,
"factor": 1.0452,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260927_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAD@SF | home | Carson Seymour | Carson Seymour | True | 4.0 | 1.0 | -9 | 4 | 0 | -4 | 6/0 | 1/0 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.695652173913043,
"WHIP": 1.5326086956521738,
"IP": 30.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4294,
"sample_weight": 0.484,
"run_prevention_factor": 1.0365,
"strikeout_factor": 0.9757,
"walk_factor": 1.0271,
"homer_factor": 1.0543,
"regression_flag": "neutral",
"k_percent": 15.7,
"bb_percent": 11.9,
"woba": 0.364,
"xwoba": 0.385,
"barrel_percent": 9.4,
"hard_hit_percent": 39.6,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 750,
"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": 6.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5577,
"prior_weight": 0.4423
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693313",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 1.0,
"R": 3.0,
"H": 2.0,
"BB": 2.0,
"SO": 3.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 72.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.6,
"H": 0.4,
"BB": 0.4,
"SO": 0.6,
"HR": 0.2,
"BF": 3.6,
"Pitches": 14.4
},
"rates": {
"ERA": 1.9286,
"WHIP": 0.8571,
"ER_per_IP": 0.21429,
"H_per_IP": 0.42857,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.64286,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 8.2,
"ER": 5.0,
"R": 7.0,
"H": 7.0,
"BB": 7.0,
"SO": 5.0,
"HR": 3.0,
"BF": 40.0,
"Pitches": 148.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.7,
"H": 0.7,
"BB": 0.7,
"SO": 0.5,
"HR": 0.3,
"BF": 4.0,
"Pitches": 14.8
},
"rates": {
"ERA": 5.1923,
"WHIP": 1.6154,
"ER_per_IP": 0.57692,
"H_per_IP": 0.80769,
"BB_per_IP": 0.80769,
"SO_per_IP": 0.57692,
"HR_per_IP": 0.34615
}
},
"season": {
"games": 24,
"totals": {
"IP": 30.2,
"ER": 16.0,
"R": 19.0,
"H": 31.0,
"BB": 16.0,
"SO": 22.0,
"HR": 6.0,
"BF": 137.0,
"Pitches": 520.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6667,
"R": 0.7917,
"H": 1.2917,
"BB": 0.6667,
"SO": 0.9167,
"HR": 0.25,
"BF": 5.7083,
"Pitches": 21.6667
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.5326,
"ER_per_IP": 0.52174,
"H_per_IP": 1.01087,
"BB_per_IP": 0.52174,
"SO_per_IP": 0.71739,
"HR_per_IP": 0.19565
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.2,
"predicted_H": 2.162,
"predicted_BB": 1.306,
"predicted_SO": 2.042,
"predicted_HR": 0.556,
"predicted_ERA": 4.062,
"predicted_WHIP": 1.3042
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5369,
"form_weight": 0.4631,
"form_reliability": 0.5577,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5577,
"prior_weight": 0.4423
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 2.2,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.2,
"final": 2.7032,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 2.162,
"final": 4.2225,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.306,
"final": 1.1417,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.042,
"final": 4.1669,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.556,
"final": 1.3312,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.062,
"final": 4.062,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3042,
"final": 1.3042,
"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": 8.2,
"ER": 5,
"H": 7,
"BB": 7,
"SO": 5,
"HR": 3,
"ERA": 5.1923076923076925,
"WHIP": 1.6153846153846154,
"K9": 5.1923076923076925,
"HR9": 3.1153846153846154,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-26T00:00:00"
},
"recent_form_boost": 1.0246800082647531,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5577,
"prior_weight": 0.4423
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693313",
"player_name": "Carson Seymour",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 161,
"wins": 65,
"losses": 96,
"win_pct": 0.4037,
"runs_scored": 668.0,
"runs_allowed": 755.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5404,
"avg_runs_scored": 4.1491,
"avg_runs_allowed": 4.6894,
"offense_index": 0.9271,
"defense_index": 0.9544,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2183
},
"opponent": {
"team": "LAD",
"games": 161,
"wins": 99,
"losses": 62,
"win_pct": 0.6149,
"runs_scored": 796.0,
"runs_allowed": 599.0,
"run_differential": 197.0,
"run_differential_per_game": 1.2236,
"avg_runs_scored": 4.9441,
"avg_runs_allowed": 3.7205,
"offense_index": 1.1047,
"defense_index": 1.2029,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.7,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.318
},
"edges": {
"quality_edge": -0.5363,
"offense_edge": -0.0729,
"opponent_offense_edge": 0.1047,
"defense_strength": -0.0456,
"opponent_defense_weakness": -0.2029,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.973,
"run_prevention": 1.0481,
"strikeout": 0.9755
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693313",
"profile": {
"available": true,
"pitcher_id": "693313",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 121.0,
"k_percent": 15.7,
"bb_percent": 11.9,
"woba": 0.364,
"xwoba": 0.385,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 39.6,
"avg_best_speed": 77.1603,
"avg_hyper_speed": 93.9282,
"whiff_percent": 22.7,
"swing_percent": 46.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.2011,
"command_and_miss": -0.67,
"regression_edge": -0.6,
"xwoba_edge": -2.1143,
"barrel_edge": -0.4889,
"hard_hit_edge": -0.2429,
"whiff_edge": -0.3571,
"bb_edge": -0.7,
"pitch_design_score": 0.2465
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693313",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.26568376704982,
"release_spin_rate": 2239.5160098179445,
"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": 19,
"pitch_usage": 0.0,
"release_speed": 94.26568376704982,
"release_spin_rate": 2239.5160098179445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.2657,
"release_spin_rate": 2239.516,
"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.2465,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.7607,
"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.4294,
"sample_weight": 0.484,
"run_prevention_factor": 1.0365,
"strikeout_factor": 0.9757,
"walk_factor": 1.0271,
"homer_factor": 1.0543,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "693313",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0177,
"adjusted": 5
},
"predicted_H": {
"original": 9.0,
"factor": 1.0177,
"adjusted": 9
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0131,
"adjusted": 2
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0263,
"adjusted": 2
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9882,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"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": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260927_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_NYM@WAS | away | Sean Manaea | Sean Manaea | True | 5.2 | 6.0 | 1 | 4 | 5 | 1 | 7/7 | 2/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.665898617511521,
"WHIP": 1.2995391705069126,
"IP": 144.2,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.648,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3304,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9874,
"walk_factor": 0.956,
"homer_factor": 1.1128,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 6.9,
"woba": 0.343,
"xwoba": 0.335,
"barrel_percent": 11.1,
"hard_hit_percent": 41.9,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 574,
"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": "640455",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 19.0,
"R": 20.0,
"H": 31.0,
"BB": 4.0,
"SO": 24.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 408.0
},
"per_game": {
"IP": 5.2,
"ER": 3.8,
"R": 4.0,
"H": 6.2,
"BB": 0.8,
"SO": 4.8,
"HR": 0.8,
"BF": 24.2,
"Pitches": 81.6
},
"rates": {
"ERA": 6.1807,
"WHIP": 1.2651,
"ER_per_IP": 0.68675,
"H_per_IP": 1.12048,
"BB_per_IP": 0.14458,
"SO_per_IP": 0.86747,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 32.0,
"R": 33.0,
"H": 57.0,
"BB": 15.0,
"SO": 57.0,
"HR": 11.0,
"BF": 250.0,
"Pitches": 874.0
},
"per_game": {
"IP": 6.0,
"ER": 3.2,
"R": 3.3,
"H": 5.7,
"BB": 1.5,
"SO": 5.7,
"HR": 1.1,
"BF": 25.0,
"Pitches": 87.4
},
"rates": {
"ERA": 4.8814,
"WHIP": 1.2203,
"ER_per_IP": 0.54237,
"H_per_IP": 0.9661,
"BB_per_IP": 0.25424,
"SO_per_IP": 0.9661,
"HR_per_IP": 0.18644
}
},
"season": {
"games": 32,
"totals": {
"IP": 144.2,
"ER": 75.0,
"R": 83.0,
"H": 145.0,
"BB": 43.0,
"SO": 141.0,
"HR": 23.0,
"BF": 627.0,
"Pitches": 2393.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3438,
"R": 2.5938,
"H": 4.5312,
"BB": 1.3438,
"SO": 4.4062,
"HR": 0.7188,
"BF": 19.5938,
"Pitches": 74.7812
},
"rates": {
"ERA": 4.6659,
"WHIP": 1.2995,
"ER_per_IP": 0.51843,
"H_per_IP": 1.0023,
"BB_per_IP": 0.29724,
"SO_per_IP": 0.97465,
"HR_per_IP": 0.15899
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.303,
"predicted_H": 5.789,
"predicted_BB": 1.32,
"predicted_SO": 5.176,
"predicted_HR": 0.897,
"predicted_ERA": 5.3137,
"predicted_WHIP": 1.2707
}
},
"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": 4.0,
"form": 3.303,
"final": 3.5867,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.789,
"final": 6.282,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.32,
"final": 1.5968,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.176,
"final": 5.1044,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.897,
"final": 0.9389,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3137,
"final": 5.3137,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2707,
"final": 1.2707,
"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": 32,
"H": 57,
"BB": 15,
"SO": 57,
"HR": 11,
"ERA": 4.88135593220339,
"WHIP": 1.2203389830508475,
"K9": 8.694915254237289,
"HR9": 1.6779661016949152,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.0403697726944992,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "640455",
"player_name": "Sean Manaea",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 161,
"wins": 74,
"losses": 87,
"win_pct": 0.4596,
"runs_scored": 695.0,
"runs_allowed": 725.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1863,
"avg_runs_scored": 4.3168,
"avg_runs_allowed": 4.5031,
"offense_index": 0.9603,
"defense_index": 0.9982,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.9,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0571
},
"opponent": {
"team": "WAS",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 815.0,
"runs_allowed": 811.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0248,
"avg_runs_scored": 5.0621,
"avg_runs_allowed": 5.0373,
"offense_index": 1.1262,
"defense_index": 0.8924,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0142
},
"edges": {
"quality_edge": -0.0713,
"offense_edge": -0.0397,
"opponent_offense_edge": 0.1262,
"defense_strength": -0.0018,
"opponent_defense_weakness": 0.1076,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.992,
"run_prevention": 1.0239,
"strikeout": 0.9878
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "640455",
"profile": {
"available": true,
"pitcher_id": "640455",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 578.0,
"k_percent": 22.5,
"bb_percent": 6.9,
"woba": 0.343,
"xwoba": 0.335,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 41.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 94.6292,
"whiff_percent": 22.5,
"swing_percent": 50.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5978,
"command_and_miss": 0.0071,
"regression_edge": 0.2286,
"xwoba_edge": -0.6857,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.3857,
"bb_edge": 0.55,
"pitch_design_score": -0.2543
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 85.32242397875616,
"release_spin_rate": 2105.383936655872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 85.32242397875616,
"release_spin_rate": 2105.383936655872,
"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.3224,
"release_spin_rate": 2105.3839,
"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.2543,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8166,
"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.3304,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9874,
"walk_factor": 0.956,
"homer_factor": 1.1128,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "640455",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0281,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0281,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.956,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1128,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9874,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260927_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_NYM@WAS | home | DJ Herz | DJ Herz | True | 3.2 | 3.0 | -2 | 4 | 4 | 0 | 7/6 | 1/1 | 6/2 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 9.0,
"WHIP": 1.75,
"IP": 4.0,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 37.5,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 632,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687792",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"rates": {
"ERA": 9.0,
"WHIP": 1.75,
"ER_per_IP": 1.0,
"H_per_IP": 1.25,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"rates": {
"ERA": 9.0,
"WHIP": 1.75,
"ER_per_IP": 1.0,
"H_per_IP": 1.25,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
},
"season": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"rates": {
"ERA": 9.0,
"WHIP": 1.75,
"ER_per_IP": 1.0,
"H_per_IP": 1.25,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.376,
"predicted_H": 4.112,
"predicted_BB": 1.598,
"predicted_SO": 3.787,
"predicted_HR": 0.663,
"predicted_ERA": 5.345,
"predicted_WHIP": 1.4275
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.376,
"final": 4.2182,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.112,
"final": 6.1396,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.598,
"final": 1.1782,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.787,
"final": 5.3407,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.663,
"final": 0.8996,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.345,
"final": 5.345,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4275,
"final": 1.4275,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 4.0,
"ER": 4,
"H": 5,
"BB": 2,
"SO": 4,
"HR": 1,
"ERA": 9.0,
"WHIP": 1.75,
"K9": 9.0,
"HR9": 2.25,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-09-21T00:00:00"
},
"recent_form_boost": 1.0690918570445584,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687792",
"player_name": "DJ Herz",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 815.0,
"runs_allowed": 811.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0248,
"avg_runs_scored": 5.0621,
"avg_runs_allowed": 5.0373,
"offense_index": 1.1262,
"defense_index": 0.8924,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0142
},
"opponent": {
"team": "NYM",
"games": 161,
"wins": 74,
"losses": 87,
"win_pct": 0.4596,
"runs_scored": 695.0,
"runs_allowed": 725.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1863,
"avg_runs_scored": 4.3168,
"avg_runs_allowed": 4.5031,
"offense_index": 0.9603,
"defense_index": 0.9982,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.9,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0571
},
"edges": {
"quality_edge": 0.0713,
"offense_edge": 0.1262,
"opponent_offense_edge": -0.0397,
"defense_strength": -0.1076,
"opponent_defense_weakness": 0.0018,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0012,
"run_prevention": 1.0008,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687792",
"profile": {
"available": true,
"pitcher_id": "687792",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.5,
"avg_best_speed": 77.5089,
"avg_hyper_speed": 93.8602,
"whiff_percent": 25.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0737,
"command_and_miss": 0.075,
"regression_edge": 0.0571,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.0714,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "687792",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687792",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9989,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 0.9989,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9996,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9987,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0014,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260927_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_PIT@DET | away | Jared Jones | Jared Jones | True | 5.2 | 4.0 | -5 | 1 | 0 | -1 | 3/1 | 1/0 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8703071672354947,
"WHIP": 1.1160409556313993,
"IP": 97.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.883,
"recent_avg_IP": 5.933,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5053,
"sample_weight": 1.0,
"run_prevention_factor": 0.9571,
"strikeout_factor": 1.0846,
"walk_factor": 0.972,
"homer_factor": 0.9831,
"regression_flag": "neutral",
"k_percent": 29.4,
"bb_percent": 7.7,
"woba": 0.287,
"xwoba": 0.281,
"barrel_percent": 7.6,
"hard_hit_percent": 38.2,
"whiff_percent": 32.6
},
"espn_rank": {
"rank": 67,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683003",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 6.0,
"R": 6.0,
"H": 19.0,
"BB": 5.0,
"SO": 41.0,
"HR": 1.0,
"BF": 113.0,
"Pitches": 444.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2,
"R": 1.2,
"H": 3.8,
"BB": 1.0,
"SO": 8.2,
"HR": 0.2,
"BF": 22.6,
"Pitches": 88.8
},
"rates": {
"ERA": 1.8202,
"WHIP": 0.809,
"ER_per_IP": 0.20225,
"H_per_IP": 0.64045,
"BB_per_IP": 0.16854,
"SO_per_IP": 1.38202,
"HR_per_IP": 0.03371
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 23.0,
"R": 23.0,
"H": 44.0,
"BB": 18.0,
"SO": 65.0,
"HR": 6.0,
"BF": 218.0,
"Pitches": 845.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.3,
"H": 4.4,
"BB": 1.8,
"SO": 6.5,
"HR": 0.6,
"BF": 21.8,
"Pitches": 84.5
},
"rates": {
"ERA": 4.0065,
"WHIP": 1.2,
"ER_per_IP": 0.44516,
"H_per_IP": 0.85161,
"BB_per_IP": 0.34839,
"SO_per_IP": 1.25806,
"HR_per_IP": 0.11613
}
},
"season": {
"games": 20,
"totals": {
"IP": 97.2,
"ER": 42.0,
"R": 43.0,
"H": 78.0,
"BB": 31.0,
"SO": 118.0,
"HR": 12.0,
"BF": 402.0,
"Pitches": 1579.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.15,
"H": 3.9,
"BB": 1.55,
"SO": 5.9,
"HR": 0.6,
"BF": 20.1,
"Pitches": 78.95
},
"rates": {
"ERA": 3.8703,
"WHIP": 1.116,
"ER_per_IP": 0.43003,
"H_per_IP": 0.79863,
"BB_per_IP": 0.31741,
"SO_per_IP": 1.20819,
"HR_per_IP": 0.12287
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.036,
"predicted_H": 4.38,
"predicted_BB": 1.573,
"predicted_SO": 6.791,
"predicted_HR": 0.519,
"predicted_ERA": 3.3191,
"predicted_WHIP": 1.0784
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.036,
"final": 1.5859,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.38,
"final": 3.7804,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.573,
"final": 1.324,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.791,
"final": 5.1438,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.519,
"final": 0.728,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3191,
"final": 3.3191,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0784,
"final": 1.0784,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 23,
"H": 44,
"BB": 18,
"SO": 65,
"HR": 6,
"ERA": 4.006451612903225,
"WHIP": 1.2,
"K9": 11.32258064516129,
"HR9": 1.0451612903225806,
"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-22T00:00:00"
},
"recent_form_boost": 0.9414345621969595,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683003",
"player_name": "Jared Jones",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"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": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 161,
"wins": 81,
"losses": 80,
"win_pct": 0.5031,
"runs_scored": 763.0,
"runs_allowed": 737.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1615,
"avg_runs_scored": 4.7391,
"avg_runs_allowed": 4.5776,
"offense_index": 1.0589,
"defense_index": 0.9777,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0575
},
"opponent": {
"team": "DET",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 721.0,
"runs_allowed": 648.0,
"run_differential": 73.0,
"run_differential_per_game": 0.4534,
"avg_runs_scored": 4.4783,
"avg_runs_allowed": 4.0248,
"offense_index": 1.0006,
"defense_index": 1.112,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.6,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0031
},
"edges": {
"quality_edge": 0.0606,
"offense_edge": 0.0589,
"opponent_offense_edge": 0.0006,
"defense_strength": -0.0223,
"opponent_defense_weakness": -0.112,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0017,
"run_prevention": 0.9993,
"strikeout": 1.0018
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683003",
"profile": {
"available": true,
"pitcher_id": "683003",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 379.0,
"k_percent": 29.4,
"bb_percent": 7.7,
"woba": 0.287,
"xwoba": 0.281,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 38.2,
"avg_best_speed": 78.6723,
"avg_hyper_speed": 94.0781,
"whiff_percent": 32.6,
"swing_percent": 49.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4158,
"command_and_miss": 0.9157,
"regression_edge": 0.1714,
"xwoba_edge": 0.8571,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.0429,
"whiff_edge": 1.0571,
"bb_edge": 0.35,
"pitch_design_score": 0.2146
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683003",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 93.69589250768729,
"release_spin_rate": 2522.5526400784156,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 93.69589250768729,
"release_spin_rate": 2522.5526400784156,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.6959,
"release_spin_rate": 2522.5526,
"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.2146,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5328,
"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.5053,
"sample_weight": 1.0,
"run_prevention_factor": 0.9571,
"strikeout_factor": 1.0846,
"walk_factor": 0.972,
"homer_factor": 0.9831,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683003",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9571,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9571,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.972,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9831,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0846,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 87,
"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/20260927_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_PIT@DET | home | River Ryan | River Ryan | True | 3.0 | 1.1 | -5 | 1 | 2 | 1 | 3/3 | 1/2 | 8/3 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 0.0,
"WHIP": 1.0,
"IP": 3.0,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 37.5,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 343,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "689981",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"per_game": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.66667,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"per_game": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.66667,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
},
"season": {
"games": 1,
"totals": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"per_game": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.66667,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.638,
"predicted_H": 3.568,
"predicted_BB": 1.425,
"predicted_SO": 3.629,
"predicted_HR": 0.476,
"predicted_ERA": 3.8447,
"predicted_WHIP": 1.3025
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.638,
"final": 1.1901,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.568,
"final": 3.1692,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.425,
"final": 1.1266,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 3.629,
"final": 6.6977,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.476,
"final": 0.1418,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8447,
"final": 3.8447,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3025,
"final": 1.3025,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 3.0,
"ER": 0,
"H": 2,
"BB": 1,
"SO": 3,
"HR": 0,
"ERA": 0.0,
"WHIP": 1.0,
"K9": 9.0,
"HR9": 0.0,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-09-21T00:00:00"
},
"recent_form_boost": 0.9484484931354742,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689981",
"player_name": "River Ryan",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 721.0,
"runs_allowed": 648.0,
"run_differential": 73.0,
"run_differential_per_game": 0.4534,
"avg_runs_scored": 4.4783,
"avg_runs_allowed": 4.0248,
"offense_index": 1.0006,
"defense_index": 1.112,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.6,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0031
},
"opponent": {
"team": "PIT",
"games": 161,
"wins": 81,
"losses": 80,
"win_pct": 0.5031,
"runs_scored": 763.0,
"runs_allowed": 737.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1615,
"avg_runs_scored": 4.7391,
"avg_runs_allowed": 4.5776,
"offense_index": 1.0589,
"defense_index": 0.9777,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0575
},
"edges": {
"quality_edge": -0.0606,
"offense_edge": 0.0006,
"opponent_offense_edge": 0.0589,
"defense_strength": 0.112,
"opponent_defense_weakness": 0.0223,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9986,
"run_prevention": 1.0013,
"strikeout": 0.9935
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689981",
"profile": {
"available": true,
"pitcher_id": "689981",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.5,
"avg_best_speed": 77.5089,
"avg_hyper_speed": 93.8602,
"whiff_percent": 25.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0737,
"command_and_miss": 0.075,
"regression_edge": 0.0571,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.0714,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "689981",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "689981",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9989,
"adjusted": 0
},
"predicted_H": {
"original": 2.0,
"factor": 0.9989,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9996,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9987,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0014,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 13,
"Pitches": 63,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260927_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_STL@MIL | away | Andre Pallante | Andre Pallante | True | 5.1 | 5.0 | -1 | 4 | 6 | 2 | 6/10 | 5/1 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.611464968152866,
"WHIP": 1.2420382165605095,
"IP": 157.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.607,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0257,
"sample_weight": 1.0,
"run_prevention_factor": 0.9978,
"strikeout_factor": 0.9434,
"walk_factor": 0.968,
"homer_factor": 0.9327,
"regression_flag": "neutral",
"k_percent": 16.2,
"bb_percent": 7.5,
"woba": 0.298,
"xwoba": 0.309,
"barrel_percent": 4.7,
"hard_hit_percent": 34.2,
"whiff_percent": 21.1
},
"espn_rank": {
"rank": 59,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669467",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 13.0,
"R": 15.0,
"H": 28.0,
"BB": 9.0,
"SO": 14.0,
"HR": 1.0,
"BF": 115.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 3.0,
"H": 5.6,
"BB": 1.8,
"SO": 2.8,
"HR": 0.2,
"BF": 23.0,
"Pitches": 87.2
},
"rates": {
"ERA": 4.3333,
"WHIP": 1.3704,
"ER_per_IP": 0.48148,
"H_per_IP": 1.03704,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.51852,
"HR_per_IP": 0.03704
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 19.0,
"R": 21.0,
"H": 49.0,
"BB": 20.0,
"SO": 34.0,
"HR": 1.0,
"BF": 231.0,
"Pitches": 904.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 2.1,
"H": 4.9,
"BB": 2.0,
"SO": 3.4,
"HR": 0.1,
"BF": 23.1,
"Pitches": 90.4
},
"rates": {
"ERA": 3.0,
"WHIP": 1.2105,
"ER_per_IP": 0.33333,
"H_per_IP": 0.85965,
"BB_per_IP": 0.35088,
"SO_per_IP": 0.59649,
"HR_per_IP": 0.01754
}
},
"season": {
"games": 28,
"totals": {
"IP": 157.0,
"ER": 63.0,
"R": 67.0,
"H": 146.0,
"BB": 49.0,
"SO": 106.0,
"HR": 11.0,
"BF": 654.0,
"Pitches": 2551.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.3929,
"H": 5.2143,
"BB": 1.75,
"SO": 3.7857,
"HR": 0.3929,
"BF": 23.3571,
"Pitches": 91.1071
},
"rates": {
"ERA": 3.6115,
"WHIP": 1.242,
"ER_per_IP": 0.40127,
"H_per_IP": 0.92994,
"BB_per_IP": 0.3121,
"SO_per_IP": 0.67516,
"HR_per_IP": 0.07006
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.353,
"predicted_H": 5.259,
"predicted_BB": 1.877,
"predicted_SO": 3.466,
"predicted_HR": 0.295,
"predicted_ERA": 3.8574,
"predicted_WHIP": 1.3
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.353,
"final": 3.0349,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.259,
"final": 5.5658,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.877,
"final": 3.1699,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.466,
"final": 2.8591,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.295,
"final": 0.1729,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8574,
"final": 3.8574,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3,
"final": 1.3,
"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": 19,
"H": 49,
"BB": 20,
"SO": 34,
"HR": 1,
"ERA": 3.0,
"WHIP": 1.2105263157894737,
"K9": 5.368421052631579,
"HR9": 0.15789473684210525,
"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-22T00:00:00"
},
"recent_form_boost": 0.8284719136400835,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 5.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669467",
"player_name": "Andre Pallante",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 161,
"wins": 77,
"losses": 84,
"win_pct": 0.4783,
"runs_scored": 716.0,
"runs_allowed": 743.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1677,
"avg_runs_scored": 4.4472,
"avg_runs_allowed": 4.6149,
"offense_index": 0.9937,
"defense_index": 0.9698,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.2,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.1441
},
"opponent": {
"team": "MIL",
"games": 161,
"wins": 102,
"losses": 59,
"win_pct": 0.6335,
"runs_scored": 826.0,
"runs_allowed": 614.0,
"run_differential": 212.0,
"run_differential_per_game": 1.3168,
"avg_runs_scored": 5.1304,
"avg_runs_allowed": 3.8137,
"offense_index": 1.1463,
"defense_index": 1.1735,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.3803
},
"edges": {
"quality_edge": -0.5244,
"offense_edge": -0.0063,
"opponent_offense_edge": 0.1463,
"defense_strength": -0.0302,
"opponent_defense_weakness": -0.1735,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.9723,
"run_prevention": 1.0526,
"strikeout": 0.9726
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669467",
"profile": {
"available": true,
"pitcher_id": "669467",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 598.0,
"k_percent": 16.2,
"bb_percent": 7.5,
"woba": 0.298,
"xwoba": 0.309,
"sweet_spot_percent": 29.9,
"barrel_batted_rate": 4.7,
"hard_hit_percent": 34.2,
"avg_best_speed": 75.4273,
"avg_hyper_speed": 93.4989,
"whiff_percent": 21.1,
"swing_percent": 44.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3321,
"command_and_miss": -0.4979,
"regression_edge": -0.3143,
"xwoba_edge": 0.0571,
"barrel_edge": 0.5556,
"hard_hit_edge": 0.5286,
"whiff_edge": -0.5857,
"bb_edge": 0.4,
"pitch_design_score": 0.0069
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669467",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.9870971466055,
"release_spin_rate": 2284.8010573767824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.9870971466055,
"release_spin_rate": 2284.8010573767824,
"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.9871,
"release_spin_rate": 2284.8011,
"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.0069,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0493,
"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.0257,
"sample_weight": 1.0,
"run_prevention_factor": 0.9978,
"strikeout_factor": 0.9434,
"walk_factor": 0.968,
"homer_factor": 0.9327,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669467",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9978,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9978,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9327,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9434,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 5,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260927_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_STL@MIL | home | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 5.1 | -2 | 2 | 0 | -2 | 2/2 | 0/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.8602362204724407,
"WHIP": 0.8031496062992125,
"IP": 169.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.839,
"recent_avg_IP": 4.867,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.3904,
"sample_weight": 1.0,
"run_prevention_factor": 0.8818,
"strikeout_factor": 1.16,
"walk_factor": 0.948,
"homer_factor": 0.8348,
"regression_flag": "neutral",
"k_percent": 38.2,
"bb_percent": 6.5,
"woba": 0.217,
"xwoba": 0.223,
"barrel_percent": 3.7,
"hard_hit_percent": 33.0,
"whiff_percent": 37.2
},
"espn_rank": {
"rank": 5,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 169.1,
"season_ERA": 1.86,
"season_WHIP": 0.803,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694819",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 8.0,
"R": 8.0,
"H": 17.0,
"BB": 9.0,
"SO": 31.0,
"HR": 1.0,
"BF": 96.0,
"Pitches": 400.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 1.6,
"H": 3.4,
"BB": 1.8,
"SO": 6.2,
"HR": 0.2,
"BF": 19.2,
"Pitches": 80.0
},
"rates": {
"ERA": 2.9589,
"WHIP": 1.0685,
"ER_per_IP": 0.32877,
"H_per_IP": 0.69863,
"BB_per_IP": 0.36986,
"SO_per_IP": 1.27397,
"HR_per_IP": 0.0411
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 15.0,
"R": 15.0,
"H": 33.0,
"BB": 14.0,
"SO": 74.0,
"HR": 5.0,
"BF": 207.0,
"Pitches": 854.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.5,
"H": 3.3,
"BB": 1.4,
"SO": 7.4,
"HR": 0.5,
"BF": 20.7,
"Pitches": 85.4
},
"rates": {
"ERA": 2.4847,
"WHIP": 0.865,
"ER_per_IP": 0.27607,
"H_per_IP": 0.60736,
"BB_per_IP": 0.25767,
"SO_per_IP": 1.36196,
"HR_per_IP": 0.09202
}
},
"season": {
"games": 29,
"totals": {
"IP": 169.1,
"ER": 35.0,
"R": 43.0,
"H": 94.0,
"BB": 42.0,
"SO": 247.0,
"HR": 14.0,
"BF": 646.0,
"Pitches": 2579.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2069,
"R": 1.4828,
"H": 3.2414,
"BB": 1.4483,
"SO": 8.5172,
"HR": 0.4828,
"BF": 22.2759,
"Pitches": 88.931
},
"rates": {
"ERA": 1.8602,
"WHIP": 0.8031,
"ER_per_IP": 0.20669,
"H_per_IP": 0.55512,
"BB_per_IP": 0.24803,
"SO_per_IP": 1.45866,
"HR_per_IP": 0.08268
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.73,
"predicted_H": 3.731,
"predicted_BB": 1.717,
"predicted_SO": 6.945,
"predicted_HR": 0.429,
"predicted_ERA": 2.8734,
"predicted_WHIP": 1.0058
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.73,
"final": 1.8413,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.731,
"final": 3.0176,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.717,
"final": 1.0093,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.945,
"final": 5.7312,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.429,
"final": 0.2522,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8734,
"final": 2.8734,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0058,
"final": 1.0058,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 15,
"H": 33,
"BB": 14,
"SO": 74,
"HR": 5,
"ERA": 2.484662576687117,
"WHIP": 0.8650306748466259,
"K9": 12.257668711656443,
"HR9": 0.8282208588957056,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.7618590624938131,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 161,
"wins": 102,
"losses": 59,
"win_pct": 0.6335,
"runs_scored": 826.0,
"runs_allowed": 614.0,
"run_differential": 212.0,
"run_differential_per_game": 1.3168,
"avg_runs_scored": 5.1304,
"avg_runs_allowed": 3.8137,
"offense_index": 1.1463,
"defense_index": 1.1735,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.3803
},
"opponent": {
"team": "STL",
"games": 161,
"wins": 77,
"losses": 84,
"win_pct": 0.4783,
"runs_scored": 716.0,
"runs_allowed": 743.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1677,
"avg_runs_scored": 4.4472,
"avg_runs_allowed": 4.6149,
"offense_index": 0.9937,
"defense_index": 0.9698,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.2,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.1441
},
"edges": {
"quality_edge": 0.5244,
"offense_edge": 0.1463,
"opponent_offense_edge": -0.0063,
"defense_strength": 0.1735,
"opponent_defense_weakness": 0.0302,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0264,
"run_prevention": 0.9554,
"strikeout": 1.0162
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 38.2,
"bb_percent": 6.5,
"woba": 0.217,
"xwoba": 0.223,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 3.7,
"hard_hit_percent": 33.0,
"avg_best_speed": 76.432,
"avg_hyper_speed": 92.9697,
"whiff_percent": 37.2,
"swing_percent": 51.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6511,
"command_and_miss": 1.7714,
"regression_edge": -0.1714,
"xwoba_edge": 2.5,
"barrel_edge": 0.7778,
"hard_hit_edge": 0.7,
"whiff_edge": 1.7143,
"bb_edge": 0.65,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.5351,
"release_spin_rate": 2568.6403,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.3904,
"sample_weight": 1.0,
"run_prevention_factor": 0.8818,
"strikeout_factor": 1.16,
"walk_factor": 0.948,
"homer_factor": 0.8348,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694819",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8818,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8818,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8348,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.16,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 82,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260927_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TB@PHI | away | Nick Martinez | Nick Martinez | True | 6.0 | 2.2 | -10 | 3 | 4 | 1 | 8/7 | 0/1 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.943609022556391,
"WHIP": 1.0657894736842104,
"IP": 177.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.911,
"recent_avg_IP": 5.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0293,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 0.9171,
"walk_factor": 0.888,
"homer_factor": 0.9551,
"regression_flag": "neutral",
"k_percent": 15.3,
"bb_percent": 3.5,
"woba": 0.289,
"xwoba": 0.305,
"barrel_percent": 6.7,
"hard_hit_percent": 32.5,
"whiff_percent": 17.4
},
"espn_rank": {
"rank": 18,
"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": "607259",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 10.0,
"R": 10.0,
"H": 24.0,
"BB": 3.0,
"SO": 21.0,
"HR": 5.0,
"BF": 113.0,
"Pitches": 405.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.8,
"BB": 0.6,
"SO": 4.2,
"HR": 1.0,
"BF": 22.6,
"Pitches": 81.0
},
"rates": {
"ERA": 3.0337,
"WHIP": 0.9101,
"ER_per_IP": 0.33708,
"H_per_IP": 0.80899,
"BB_per_IP": 0.10112,
"SO_per_IP": 0.70787,
"HR_per_IP": 0.16854
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 26.0,
"R": 26.0,
"H": 55.0,
"BB": 5.0,
"SO": 41.0,
"HR": 11.0,
"BF": 233.0,
"Pitches": 826.0
},
"per_game": {
"IP": 6.0,
"ER": 2.6,
"R": 2.6,
"H": 5.5,
"BB": 0.5,
"SO": 4.1,
"HR": 1.1,
"BF": 23.3,
"Pitches": 82.6
},
"rates": {
"ERA": 3.9,
"WHIP": 1.0,
"ER_per_IP": 0.43333,
"H_per_IP": 0.91667,
"BB_per_IP": 0.08333,
"SO_per_IP": 0.68333,
"HR_per_IP": 0.18333
}
},
"season": {
"games": 30,
"totals": {
"IP": 177.1,
"ER": 58.0,
"R": 58.0,
"H": 164.0,
"BB": 25.0,
"SO": 108.0,
"HR": 22.0,
"BF": 706.0,
"Pitches": 2474.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9333,
"R": 1.9333,
"H": 5.4667,
"BB": 0.8333,
"SO": 3.6,
"HR": 0.7333,
"BF": 23.5333,
"Pitches": 82.4667
},
"rates": {
"ERA": 2.9436,
"WHIP": 1.0658,
"ER_per_IP": 0.32707,
"H_per_IP": 0.92481,
"BB_per_IP": 0.14098,
"SO_per_IP": 0.60902,
"HR_per_IP": 0.12406
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.336,
"predicted_H": 5.317,
"predicted_BB": 0.854,
"predicted_SO": 4.297,
"predicted_HR": 0.975,
"predicted_ERA": 3.5039,
"predicted_WHIP": 1.0285
}
},
"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.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.336,
"final": 2.6085,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.317,
"final": 6.418,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.854,
"final": 0.5035,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.297,
"final": 3.7647,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.975,
"final": 0.5749,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5039,
"final": 3.5039,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0285,
"final": 1.0285,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 26,
"H": 55,
"BB": 5,
"SO": 41,
"HR": 11,
"ERA": 3.9000000000000004,
"WHIP": 1.0000000000000002,
"K9": 6.15,
"HR9": 1.6500000000000001,
"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.9244587557453467,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 0.0,
"predicted_SO": 3.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.0,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607259",
"player_name": "Nick Martinez",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 161,
"wins": 98,
"losses": 63,
"win_pct": 0.6087,
"runs_scored": 733.0,
"runs_allowed": 643.0,
"run_differential": 90.0,
"run_differential_per_game": 0.559,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 3.9938,
"offense_index": 1.0161,
"defense_index": 1.1219,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.6,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.196
},
"opponent": {
"team": "PHI",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 706.0,
"runs_allowed": 695.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0683,
"avg_runs_scored": 4.3851,
"avg_runs_allowed": 4.3168,
"offense_index": 0.9786,
"defense_index": 1.038,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.5,
"run_differential": -17.0
},
"available": true,
"quality_score": 0.0077
},
"edges": {
"quality_edge": 0.1883,
"offense_edge": 0.0161,
"opponent_offense_edge": -0.0214,
"defense_strength": 0.1219,
"opponent_defense_weakness": -0.038,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.012,
"run_prevention": 0.975,
"strikeout": 1.0074
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607259",
"profile": {
"available": true,
"pitcher_id": "607259",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 680.0,
"k_percent": 15.3,
"bb_percent": 3.5,
"woba": 0.289,
"xwoba": 0.305,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 32.5,
"avg_best_speed": 75.6782,
"avg_hyper_speed": 93.0609,
"whiff_percent": 17.4,
"swing_percent": 50.8
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3016,
"command_and_miss": -0.5407,
"regression_edge": -0.4571,
"xwoba_edge": 0.1714,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.7714,
"whiff_edge": -1.1143,
"bb_edge": 1.4,
"pitch_design_score": -0.1491
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607259",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 87.20062905927892,
"release_spin_rate": 2197.645020819482,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 87.20062905927892,
"release_spin_rate": 2197.645020819482,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.2006,
"release_spin_rate": 2197.645,
"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.1491,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0653,
"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.0293,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 0.9171,
"walk_factor": 0.888,
"homer_factor": 0.9551,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607259",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0025,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0025,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.888,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9551,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9171,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"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/20260927_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TB@PHI | home | Zack Wheeler | Zack Wheeler | True | 6.0 | 6.0 | 0 | 3 | 1 | -2 | 3/5 | 2/0 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0576923076923075,
"WHIP": 1.0576923076923077,
"IP": 156.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.778,
"recent_avg_IP": 6.333,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7492,
"sample_weight": 1.0,
"run_prevention_factor": 0.9363,
"strikeout_factor": 1.0823,
"walk_factor": 0.97,
"homer_factor": 0.9227,
"regression_flag": "neutral",
"k_percent": 30.2,
"bb_percent": 7.6,
"woba": 0.278,
"xwoba": 0.265,
"barrel_percent": 6.0,
"hard_hit_percent": 35.0,
"whiff_percent": 31.4
},
"espn_rank": {
"rank": 8,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "554430",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 6.0,
"R": 6.0,
"H": 21.0,
"BB": 9.0,
"SO": 40.0,
"HR": 1.0,
"BF": 123.0,
"Pitches": 505.0
},
"per_game": {
"IP": 6.1,
"ER": 1.2,
"R": 1.2,
"H": 4.2,
"BB": 1.8,
"SO": 8.0,
"HR": 0.2,
"BF": 24.6,
"Pitches": 101.0
},
"rates": {
"ERA": 1.7053,
"WHIP": 0.9474,
"ER_per_IP": 0.18947,
"H_per_IP": 0.66316,
"BB_per_IP": 0.28421,
"SO_per_IP": 1.26316,
"HR_per_IP": 0.03158
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 24.0,
"R": 25.0,
"H": 46.0,
"BB": 24.0,
"SO": 65.0,
"HR": 7.0,
"BF": 226.0,
"Pitches": 938.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.5,
"H": 4.6,
"BB": 2.4,
"SO": 6.5,
"HR": 0.7,
"BF": 22.6,
"Pitches": 93.8
},
"rates": {
"ERA": 4.0755,
"WHIP": 1.3208,
"ER_per_IP": 0.45283,
"H_per_IP": 0.86792,
"BB_per_IP": 0.45283,
"SO_per_IP": 1.22642,
"HR_per_IP": 0.13208
}
},
"season": {
"games": 27,
"totals": {
"IP": 156.0,
"ER": 53.0,
"R": 54.0,
"H": 118.0,
"BB": 47.0,
"SO": 188.0,
"HR": 20.0,
"BF": 622.0,
"Pitches": 2552.0
},
"per_game": {
"IP": 5.2,
"ER": 1.963,
"R": 2.0,
"H": 4.3704,
"BB": 1.7407,
"SO": 6.963,
"HR": 0.7407,
"BF": 23.037,
"Pitches": 94.5185
},
"rates": {
"ERA": 3.0577,
"WHIP": 1.0577,
"ER_per_IP": 0.33974,
"H_per_IP": 0.75641,
"BB_per_IP": 0.30128,
"SO_per_IP": 1.20513,
"HR_per_IP": 0.12821
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.015,
"predicted_H": 4.637,
"predicted_BB": 2.066,
"predicted_SO": 6.998,
"predicted_HR": 0.563,
"predicted_ERA": 3.0878,
"predicted_WHIP": 1.1412
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.015,
"final": 2.4248,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.637,
"final": 3.956,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.066,
"final": 2.0385,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 6.998,
"final": 4.5029,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.563,
"final": 0.3288,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0878,
"final": 3.0878,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1412,
"final": 1.1412,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 24,
"H": 46,
"BB": 24,
"SO": 65,
"HR": 7,
"ERA": 4.075471698113207,
"WHIP": 1.320754716981132,
"K9": 11.037735849056602,
"HR9": 1.1886792452830186,
"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-22T00:00:00"
},
"recent_form_boost": 0.9522181897076107,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "554430",
"player_name": "Zack Wheeler",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 7.0,
"delta": 6.0,
"percent_delta": 6.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 7.0,
"delta": 6.0,
"percent_delta": 6.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 706.0,
"runs_allowed": 695.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0683,
"avg_runs_scored": 4.3851,
"avg_runs_allowed": 4.3168,
"offense_index": 0.9786,
"defense_index": 1.038,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.5,
"run_differential": -17.0
},
"available": true,
"quality_score": 0.0077
},
"opponent": {
"team": "TB",
"games": 161,
"wins": 98,
"losses": 63,
"win_pct": 0.6087,
"runs_scored": 733.0,
"runs_allowed": 643.0,
"run_differential": 90.0,
"run_differential_per_game": 0.559,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 3.9938,
"offense_index": 1.0161,
"defense_index": 1.1219,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.6,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.196
},
"edges": {
"quality_edge": -0.1883,
"offense_edge": -0.0214,
"opponent_offense_edge": 0.0161,
"defense_strength": 0.038,
"opponent_defense_weakness": -0.1219,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.993,
"run_prevention": 1.0082,
"strikeout": 0.9931
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "554430",
"profile": {
"available": true,
"pitcher_id": "554430",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 598.0,
"k_percent": 30.2,
"bb_percent": 7.6,
"woba": 0.278,
"xwoba": 0.265,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 35.0,
"avg_best_speed": 74.3242,
"avg_hyper_speed": 93.3559,
"whiff_percent": 31.4,
"swing_percent": 50.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8454,
"command_and_miss": 0.9121,
"regression_edge": 0.3714,
"xwoba_edge": 1.3143,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.4143,
"whiff_edge": 0.8857,
"bb_edge": 0.375,
"pitch_design_score": 0.0183
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "554430",
"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": 90.19030757034128,
"release_spin_rate": 2366.8015860556898,
"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": 90.19030757034128,
"release_spin_rate": 2366.8015860556898,
"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.1903,
"release_spin_rate": 2366.8016,
"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.0183,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1306,
"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.7492,
"sample_weight": 1.0,
"run_prevention_factor": 0.9363,
"strikeout_factor": 1.0823,
"walk_factor": 0.97,
"homer_factor": 0.9227,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "554430",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9363,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9363,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9227,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0823,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TEX@MIN | away | MacKenzie Gore | MacKenzie Gore | True | 4.2 | 2.1 | -7 | 4 | 1 | -3 | 3/1 | 2/1 | 6/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.587890625,
"WHIP": 1.341796875,
"IP": 170.2,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 5.172,
"recent_avg_IP": 4.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0124,
"sample_weight": 1.0,
"run_prevention_factor": 1.0011,
"strikeout_factor": 1.0086,
"walk_factor": 1.006,
"homer_factor": 1.0426,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 9.4,
"woba": 0.316,
"xwoba": 0.311,
"barrel_percent": 8.6,
"hard_hit_percent": 41.0,
"whiff_percent": 25.2
},
"espn_rank": {
"rank": 196,
"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": "669022",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 14.0,
"R": 15.0,
"H": 24.0,
"BB": 14.0,
"SO": 9.0,
"HR": 1.0,
"BF": 102.0,
"Pitches": 385.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8,
"R": 3.0,
"H": 4.8,
"BB": 2.8,
"SO": 1.8,
"HR": 0.2,
"BF": 20.4,
"Pitches": 77.0
},
"rates": {
"ERA": 5.9062,
"WHIP": 1.7812,
"ER_per_IP": 0.65625,
"H_per_IP": 1.125,
"BB_per_IP": 0.65625,
"SO_per_IP": 0.42188,
"HR_per_IP": 0.04688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 22.0,
"R": 23.0,
"H": 49.0,
"BB": 26.0,
"SO": 38.0,
"HR": 3.0,
"BF": 218.0,
"Pitches": 869.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.3,
"H": 4.9,
"BB": 2.6,
"SO": 3.8,
"HR": 0.3,
"BF": 21.8,
"Pitches": 86.9
},
"rates": {
"ERA": 4.125,
"WHIP": 1.5625,
"ER_per_IP": 0.45833,
"H_per_IP": 1.02083,
"BB_per_IP": 0.54167,
"SO_per_IP": 0.79167,
"HR_per_IP": 0.0625
}
},
"season": {
"games": 33,
"totals": {
"IP": 170.2,
"ER": 87.0,
"R": 88.0,
"H": 159.0,
"BB": 70.0,
"SO": 174.0,
"HR": 19.0,
"BF": 741.0,
"Pitches": 2937.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6364,
"R": 2.6667,
"H": 4.8182,
"BB": 2.1212,
"SO": 5.2727,
"HR": 0.5758,
"BF": 22.4545,
"Pitches": 89.0
},
"rates": {
"ERA": 4.5879,
"WHIP": 1.3418,
"ER_per_IP": 0.50977,
"H_per_IP": 0.93164,
"BB_per_IP": 0.41016,
"SO_per_IP": 1.01953,
"HR_per_IP": 0.11133
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.567,
"predicted_H": 4.844,
"predicted_BB": 2.523,
"predicted_SO": 3.283,
"predicted_HR": 0.355,
"predicted_ERA": 4.9658,
"predicted_WHIP": 1.5834
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.567,
"final": 3.1482,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.844,
"final": 4.0961,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.523,
"final": 2.3109,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.283,
"final": 4.385,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.355,
"final": 0.6166,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9658,
"final": 4.9658,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5834,
"final": 1.5834,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 22,
"H": 49,
"BB": 26,
"SO": 38,
"HR": 3,
"ERA": 4.124999999999999,
"WHIP": 1.5624999999999998,
"K9": 7.124999999999999,
"HR9": 0.5624999999999999,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9638337557453467,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669022",
"player_name": "MacKenzie Gore",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 669.0,
"runs_allowed": 713.0,
"run_differential": -44.0,
"run_differential_per_game": -0.2733,
"avg_runs_scored": 4.1553,
"avg_runs_allowed": 4.4286,
"offense_index": 0.9285,
"defense_index": 1.0106,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0362
},
"opponent": {
"team": "MIN",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 733.0,
"runs_allowed": 793.0,
"run_differential": -60.0,
"run_differential_per_game": -0.3727,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 4.9255,
"offense_index": 1.0173,
"defense_index": 0.9086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.2,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0346
},
"edges": {
"quality_edge": -0.0016,
"offense_edge": -0.0715,
"opponent_offense_edge": 0.0173,
"defense_strength": 0.0106,
"opponent_defense_weakness": 0.0914,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9996,
"run_prevention": 1.0018,
"strikeout": 0.9986
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669022",
"profile": {
"available": true,
"pitcher_id": "669022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 715.0,
"k_percent": 23.5,
"bb_percent": 9.4,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 41.0,
"avg_best_speed": 77.5967,
"avg_hyper_speed": 94.4996,
"whiff_percent": 25.2,
"swing_percent": 48.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0884,
"command_and_miss": 0.0814,
"regression_edge": 0.1429,
"xwoba_edge": 0.0,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.4429,
"whiff_edge": 0.0,
"bb_edge": -0.075,
"pitch_design_score": 0.0207
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.23294676003985,
"release_spin_rate": 2168.3870679330716,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.23294676003985,
"release_spin_rate": 2168.3870679330716,
"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.2329,
"release_spin_rate": 2168.3871,
"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.0207,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1476,
"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.0124,
"sample_weight": 1.0,
"run_prevention_factor": 1.0011,
"strikeout_factor": 1.0086,
"walk_factor": 1.006,
"homer_factor": 1.0426,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669022",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0011,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0011,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.006,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0426,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0086,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260927_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TEX@MIN | home | Dean Kremer | Dean Kremer | True | 5.0 | 7.0 | 6 | 2 | 1 | -1 | 4/3 | 0/0 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.968,
"WHIP": 1.2000000000000002,
"IP": 83.1,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.208,
"recent_avg_IP": 4.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.086,
"sample_weight": 1.0,
"run_prevention_factor": 1.0073,
"strikeout_factor": 1.0314,
"walk_factor": 0.988,
"homer_factor": 1.0418,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 8.5,
"woba": 0.325,
"xwoba": 0.324,
"barrel_percent": 9.6,
"hard_hit_percent": 35.8,
"whiff_percent": 28.7
},
"espn_rank": {
"rank": 288,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "665152",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 12.0,
"R": 13.0,
"H": 21.0,
"BB": 10.0,
"SO": 24.0,
"HR": 3.0,
"BF": 102.0,
"Pitches": 428.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.6,
"H": 4.2,
"BB": 2.0,
"SO": 4.8,
"HR": 0.6,
"BF": 20.4,
"Pitches": 85.6
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.2568,
"ER_per_IP": 0.48649,
"H_per_IP": 0.85135,
"BB_per_IP": 0.40541,
"SO_per_IP": 0.97297,
"HR_per_IP": 0.12162
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 28.0,
"R": 29.0,
"H": 41.0,
"BB": 21.0,
"SO": 48.0,
"HR": 7.0,
"BF": 211.0,
"Pitches": 876.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 2.9,
"H": 4.1,
"BB": 2.1,
"SO": 4.8,
"HR": 0.7,
"BF": 21.1,
"Pitches": 87.6
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.2078,
"ER_per_IP": 0.54545,
"H_per_IP": 0.7987,
"BB_per_IP": 0.40909,
"SO_per_IP": 0.93506,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 16,
"totals": {
"IP": 83.1,
"ER": 46.0,
"R": 49.0,
"H": 71.0,
"BB": 29.0,
"SO": 82.0,
"HR": 17.0,
"BF": 341.0,
"Pitches": 1392.0
},
"per_game": {
"IP": 5.1,
"ER": 2.875,
"R": 3.0625,
"H": 4.4375,
"BB": 1.8125,
"SO": 5.125,
"HR": 1.0625,
"BF": 21.3125,
"Pitches": 87.0
},
"rates": {
"ERA": 4.968,
"WHIP": 1.2,
"ER_per_IP": 0.552,
"H_per_IP": 0.852,
"BB_per_IP": 0.348,
"SO_per_IP": 0.984,
"HR_per_IP": 0.204
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.618,
"predicted_H": 4.389,
"predicted_BB": 1.977,
"predicted_SO": 4.827,
"predicted_HR": 0.73,
"predicted_ERA": 4.6658,
"predicted_WHIP": 1.2604
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.618,
"final": 2.3395,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.389,
"final": 4.2137,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.977,
"final": 1.0862,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.827,
"final": 4.905,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.73,
"final": 1.3023,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6658,
"final": 4.6658,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2604,
"final": 1.2604,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 28,
"H": 41,
"BB": 21,
"SO": 48,
"HR": 7,
"ERA": 4.909090909090909,
"WHIP": 1.2077922077922079,
"K9": 8.415584415584416,
"HR9": 1.2272727272727273,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.0431762882128792,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "665152",
"player_name": "Dean Kremer",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 733.0,
"runs_allowed": 793.0,
"run_differential": -60.0,
"run_differential_per_game": -0.3727,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 4.9255,
"offense_index": 1.0173,
"defense_index": 0.9086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.2,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0346
},
"opponent": {
"team": "TEX",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 669.0,
"runs_allowed": 713.0,
"run_differential": -44.0,
"run_differential_per_game": -0.2733,
"avg_runs_scored": 4.1553,
"avg_runs_allowed": 4.4286,
"offense_index": 0.9285,
"defense_index": 1.0106,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0362
},
"edges": {
"quality_edge": 0.0016,
"offense_edge": 0.0173,
"opponent_offense_edge": -0.0715,
"defense_strength": -0.0914,
"opponent_defense_weakness": -0.0106,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0002,
"run_prevention": 0.9976,
"strikeout": 1.0058
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "665152",
"profile": {
"available": true,
"pitcher_id": "665152",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 319.0,
"k_percent": 24.0,
"bb_percent": 8.5,
"woba": 0.325,
"xwoba": 0.324,
"sweet_spot_percent": 38.4,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 35.8,
"avg_best_speed": 76.8021,
"avg_hyper_speed": 93.6538,
"whiff_percent": 28.7,
"swing_percent": 46.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2883,
"command_and_miss": 0.3336,
"regression_edge": 0.0286,
"xwoba_edge": -0.3714,
"barrel_edge": -0.5333,
"hard_hit_edge": 0.3,
"whiff_edge": 0.5,
"bb_edge": 0.15,
"pitch_design_score": -0.1761
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "665152",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.71852131574862,
"release_spin_rate": 2103.3959956974113,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.71852131574862,
"release_spin_rate": 2103.3959956974113,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.7185,
"release_spin_rate": 2103.396,
"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.1761,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2582,
"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.086,
"sample_weight": 1.0,
"run_prevention_factor": 1.0073,
"strikeout_factor": 1.0314,
"walk_factor": 0.988,
"homer_factor": 1.0418,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "665152",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0073,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0073,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.988,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0418,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0314,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "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": "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/20260927_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 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"
}
} |
| 20260930 | 20260930_BOS@NYY | away | Sonny Gray | Sonny Gray | True | 6.0 | 4.2 | -4 | 3 | 2 | -1 | 10/6 | 0/0 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7159763313609466,
"WHIP": 1.1479289940828403,
"IP": 169.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.828,
"recent_avg_IP": 6.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0518,
"sample_weight": 1.0,
"run_prevention_factor": 0.9956,
"strikeout_factor": 0.9863,
"walk_factor": 0.95,
"homer_factor": 0.9892,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.7,
"woba": 0.293,
"xwoba": 0.303,
"barrel_percent": 6.9,
"hard_hit_percent": 38.3,
"whiff_percent": 23.1
},
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543243",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 23.0,
"BB": 10.0,
"SO": 26.0,
"HR": 1.0,
"BF": 120.0,
"Pitches": 454.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 4.6,
"BB": 2.0,
"SO": 5.2,
"HR": 0.2,
"BF": 24.0,
"Pitches": 90.8
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.0879,
"ER_per_IP": 0.26374,
"H_per_IP": 0.75824,
"BB_per_IP": 0.32967,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.03297
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 18.0,
"R": 18.0,
"H": 52.0,
"BB": 18.0,
"SO": 56.0,
"HR": 4.0,
"BF": 252.0,
"Pitches": 916.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 5.2,
"BB": 1.8,
"SO": 5.6,
"HR": 0.4,
"BF": 25.2,
"Pitches": 91.6
},
"rates": {
"ERA": 2.5989,
"WHIP": 1.123,
"ER_per_IP": 0.28877,
"H_per_IP": 0.83422,
"BB_per_IP": 0.28877,
"SO_per_IP": 0.8984,
"HR_per_IP": 0.06417
}
},
"season": {
"games": 29,
"totals": {
"IP": 169.0,
"ER": 51.0,
"R": 52.0,
"H": 148.0,
"BB": 46.0,
"SO": 149.0,
"HR": 16.0,
"BF": 683.0,
"Pitches": 2474.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7586,
"R": 1.7931,
"H": 5.1034,
"BB": 1.5862,
"SO": 5.1379,
"HR": 0.5517,
"BF": 23.5517,
"Pitches": 85.3103
},
"rates": {
"ERA": 2.716,
"WHIP": 1.1479,
"ER_per_IP": 0.30178,
"H_per_IP": 0.87574,
"BB_per_IP": 0.27219,
"SO_per_IP": 0.88166,
"HR_per_IP": 0.09467
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.899,
"predicted_H": 5.041,
"predicted_BB": 1.902,
"predicted_SO": 5.349,
"predicted_HR": 0.422,
"predicted_ERA": 2.8289,
"predicted_WHIP": 1.149
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.899,
"final": 2.7649,
"source": "model_form_blend"
},
"predicted_H": {
"model": 11.0,
"form": 5.041,
"final": 7.497,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.902,
"final": 1.1181,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.349,
"final": 4.793,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.422,
"final": 1.0724,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8289,
"final": 2.8289,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.149,
"final": 1.149,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.1,
"ER": 18,
"H": 52,
"BB": 18,
"SO": 56,
"HR": 4,
"ERA": 2.5989304812834226,
"WHIP": 1.1229946524064172,
"K9": 8.085561497326204,
"HR9": 0.5775401069518717,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.781067460270328,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 11.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 11,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543243",
"player_name": "Sonny Gray",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 11.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 11.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 10.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 10.0,
"delta": -1.0,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 11.0,
"after": 10.0,
"delta": -1.0,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 10.0,
"delta": -1.0,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.9464,
"defense_index": 1.1915,
"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.0214,
"defense_index": 1.2039,
"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.1709
},
"edges": {
"quality_edge": -0.0805,
"offense_edge": -0.0536,
"opponent_offense_edge": 0.0214,
"defense_strength": 0.1915,
"opponent_defense_weakness": -0.2039,
"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": "543243",
"profile": {
"available": true,
"pitcher_id": "543243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 654.0,
"k_percent": 21.8,
"bb_percent": 6.7,
"woba": 0.293,
"xwoba": 0.303,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 38.3,
"avg_best_speed": 78.8696,
"avg_hyper_speed": 93.8901,
"whiff_percent": 23.1,
"swing_percent": 47.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.1629,
"command_and_miss": 0.0007,
"regression_edge": -0.2857,
"xwoba_edge": 0.2571,
"barrel_edge": 0.0667,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.3,
"bb_edge": 0.625,
"pitch_design_score": -0.1371
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543243",
"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": 87.41606766331542,
"release_spin_rate": 2505.1386844908457,
"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": 87.41606766331542,
"release_spin_rate": 2505.1386844908457,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4161,
"release_spin_rate": 2505.1387,
"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.1371,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9794,
"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.0518,
"sample_weight": 1.0,
"run_prevention_factor": 0.9956,
"strikeout_factor": 0.9863,
"walk_factor": 0.95,
"homer_factor": 0.9892,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543243",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9956,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9956,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.95,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9892,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9863,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 10,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20260930 | 20260930_BOS@NYY | home | Max Fried | Max Fried | True | 6.0 | 6.0 | 0 | 0 | 1 | 1 | 2/3 | 1/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.79585798816568,
"WHIP": 0.9940828402366864,
"IP": 112.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.633,
"recent_avg_IP": 5.267,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8584,
"sample_weight": 1.0,
"run_prevention_factor": 0.927,
"strikeout_factor": 1.0097,
"walk_factor": 0.968,
"homer_factor": 0.8118,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 7.6,
"woba": 0.245,
"xwoba": 0.246,
"barrel_percent": 2.4,
"hard_hit_percent": 29.8,
"whiff_percent": 25.0
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 112.2,
"season_ERA": 2.796,
"season_WHIP": 0.994,
"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": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608331",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 8.0,
"R": 8.0,
"H": 20.0,
"BB": 6.0,
"SO": 25.0,
"HR": 2.0,
"BF": 102.0,
"Pitches": 400.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.0,
"BB": 1.2,
"SO": 5.0,
"HR": 0.4,
"BF": 20.4,
"Pitches": 80.0
},
"rates": {
"ERA": 2.7342,
"WHIP": 0.9873,
"ER_per_IP": 0.3038,
"H_per_IP": 0.75949,
"BB_per_IP": 0.22785,
"SO_per_IP": 0.94937,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 13.0,
"R": 13.0,
"H": 36.0,
"BB": 14.0,
"SO": 54.0,
"HR": 3.0,
"BF": 194.0,
"Pitches": 779.0
},
"per_game": {
"IP": 5.0,
"ER": 1.3,
"R": 1.3,
"H": 3.6,
"BB": 1.4,
"SO": 5.4,
"HR": 0.3,
"BF": 19.4,
"Pitches": 77.9
},
"rates": {
"ERA": 2.2941,
"WHIP": 0.9804,
"ER_per_IP": 0.2549,
"H_per_IP": 0.70588,
"BB_per_IP": 0.27451,
"SO_per_IP": 1.05882,
"HR_per_IP": 0.05882
}
},
"season": {
"games": 20,
"totals": {
"IP": 112.2,
"ER": 35.0,
"R": 35.0,
"H": 79.0,
"BB": 33.0,
"SO": 104.0,
"HR": 4.0,
"BF": 434.0,
"Pitches": 1696.0
},
"per_game": {
"IP": 5.2,
"ER": 1.75,
"R": 1.75,
"H": 3.95,
"BB": 1.65,
"SO": 5.2,
"HR": 0.2,
"BF": 21.7,
"Pitches": 84.8
},
"rates": {
"ERA": 2.7959,
"WHIP": 0.9941,
"ER_per_IP": 0.31065,
"H_per_IP": 0.70118,
"BB_per_IP": 0.2929,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.0355
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.807,
"predicted_H": 4.233,
"predicted_BB": 1.527,
"predicted_SO": 5.281,
"predicted_HR": 0.43,
"predicted_ERA": 2.997,
"predicted_WHIP": 1.0614
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.807,
"final": 1.0219,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.233,
"final": 3.2628,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.527,
"final": 1.298,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.281,
"final": 4.7244,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.43,
"final": 0.2432,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.997,
"final": 2.997,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0614,
"final": 1.0614,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.0,
"ER": 13,
"H": 36,
"BB": 14,
"SO": 54,
"HR": 3,
"ERA": 2.2941176470588234,
"WHIP": 0.9803921568627451,
"K9": 9.529411764705882,
"HR9": 0.5294117647058824,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.7432109540314689,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "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": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608331",
"player_name": "Max Fried",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0214,
"defense_index": 1.2039,
"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.1709
},
"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.9464,
"defense_index": 1.1915,
"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.0805,
"offense_edge": 0.0214,
"opponent_offense_edge": -0.0536,
"defense_strength": 0.2039,
"opponent_defense_weakness": -0.1915,
"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": "608331",
"profile": {
"available": true,
"pitcher_id": "608331",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 380.0,
"k_percent": 24.0,
"bb_percent": 7.6,
"woba": 0.245,
"xwoba": 0.246,
"sweet_spot_percent": 28.5,
"barrel_batted_rate": 2.4,
"hard_hit_percent": 29.8,
"avg_best_speed": 74.5561,
"avg_hyper_speed": 92.6087,
"whiff_percent": 25.0,
"swing_percent": 46.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": 1.4628,
"command_and_miss": 0.1921,
"regression_edge": -0.0286,
"xwoba_edge": 1.8857,
"barrel_edge": 1.0667,
"hard_hit_edge": 1.1571,
"whiff_edge": -0.0286,
"bb_edge": 0.4,
"pitch_design_score": -0.0984
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608331",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 88.10778862071564,
"release_spin_rate": 2246.884199292124,
"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": 75,
"pitch_usage": 0.0,
"release_speed": 88.10778862071564,
"release_spin_rate": 2246.884199292124,
"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.1078,
"release_spin_rate": 2246.8842,
"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.0984,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7027,
"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.8584,
"sample_weight": 1.0,
"run_prevention_factor": 0.927,
"strikeout_factor": 1.0097,
"walk_factor": 0.968,
"homer_factor": 0.8118,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608331",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.927,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.927,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.968,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.82,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0097,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20260930 | 20260930_CHC@SD | away | Kevin Gausman | Kevin Gausman | True | 5.2 | 3.1 | -7 | 4 | 3 | -1 | 7/5 | 0/0 | 9/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.50844277673546,
"WHIP": 1.2720450281425892,
"IP": 177.2,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.552,
"recent_avg_IP": 5.467,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1241,
"sample_weight": 1.0,
"run_prevention_factor": 0.9894,
"strikeout_factor": 1.028,
"walk_factor": 0.942,
"homer_factor": 1.0183,
"regression_flag": "neutral",
"k_percent": 24.5,
"bb_percent": 6.3,
"woba": 0.316,
"xwoba": 0.309,
"barrel_percent": 7.7,
"hard_hit_percent": 40.0,
"whiff_percent": 27.7
},
"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": 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": "592332",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 16.0,
"R": 17.0,
"H": 30.0,
"BB": 6.0,
"SO": 35.0,
"HR": 8.0,
"BF": 117.0,
"Pitches": 494.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 6.0,
"BB": 1.2,
"SO": 7.0,
"HR": 1.6,
"BF": 23.4,
"Pitches": 98.8
},
"rates": {
"ERA": 5.2683,
"WHIP": 1.3171,
"ER_per_IP": 0.58537,
"H_per_IP": 1.09756,
"BB_per_IP": 0.21951,
"SO_per_IP": 1.28049,
"HR_per_IP": 0.29268
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 28.0,
"R": 29.0,
"H": 60.0,
"BB": 12.0,
"SO": 61.0,
"HR": 11.0,
"BF": 235.0,
"Pitches": 957.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.9,
"H": 6.0,
"BB": 1.2,
"SO": 6.1,
"HR": 1.1,
"BF": 23.5,
"Pitches": 95.7
},
"rates": {
"ERA": 4.5,
"WHIP": 1.2857,
"ER_per_IP": 0.5,
"H_per_IP": 1.07143,
"BB_per_IP": 0.21429,
"SO_per_IP": 1.08929,
"HR_per_IP": 0.19643
}
},
"season": {
"games": 32,
"totals": {
"IP": 177.2,
"ER": 89.0,
"R": 96.0,
"H": 179.0,
"BB": 47.0,
"SO": 184.0,
"HR": 26.0,
"BF": 750.0,
"Pitches": 3003.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7812,
"R": 3.0,
"H": 5.5938,
"BB": 1.4688,
"SO": 5.75,
"HR": 0.8125,
"BF": 23.4375,
"Pitches": 93.8438
},
"rates": {
"ERA": 4.5084,
"WHIP": 1.272,
"ER_per_IP": 0.50094,
"H_per_IP": 1.0075,
"BB_per_IP": 0.26454,
"SO_per_IP": 1.03565,
"HR_per_IP": 0.14634
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.963,
"predicted_H": 5.862,
"predicted_BB": 1.368,
"predicted_SO": 6.277,
"predicted_HR": 1.211,
"predicted_ERA": 4.816,
"predicted_WHIP": 1.3059
}
},
"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.963,
"final": 2.9781,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.862,
"final": 6.3253,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.368,
"final": 0.8111,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.277,
"final": 6.1642,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.211,
"final": 1.5322,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.816,
"final": 4.816,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3059,
"final": 1.3059,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 28,
"H": 60,
"BB": 12,
"SO": 61,
"HR": 11,
"ERA": 4.5,
"WHIP": 1.2857142857142858,
"K9": 9.803571428571429,
"HR9": 1.7678571428571428,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.9990057719586398,
"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": 7.0,
"predicted_BB": 0.0,
"predicted_SO": 6.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592332",
"player_name": "Kevin Gausman",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "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.1674,
"defense_index": 1.0357,
"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.9916,
"defense_index": 1.0692,
"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.1674,
"opponent_offense_edge": -0.0084,
"defense_strength": 0.0357,
"opponent_defense_weakness": -0.0692,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0,
"run_prevention": 0.9969,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592332",
"profile": {
"available": true,
"pitcher_id": "592332",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 698.0,
"k_percent": 24.5,
"bb_percent": 6.3,
"woba": 0.316,
"xwoba": 0.309,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 40.0,
"avg_best_speed": 77.1581,
"avg_hyper_speed": 94.4959,
"whiff_percent": 27.7,
"swing_percent": 50.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.0047,
"command_and_miss": 0.4243,
"regression_edge": 0.2,
"xwoba_edge": 0.0857,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.3,
"whiff_edge": 0.3571,
"bb_edge": 0.725,
"pitch_design_score": -0.0441
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592332",
"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.07749610166415,
"release_spin_rate": 2007.4215713814062,
"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.07749610166415,
"release_spin_rate": 2007.4215713814062,
"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.0775,
"release_spin_rate": 2007.4216,
"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.0441,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3148,
"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.1241,
"sample_weight": 1.0,
"run_prevention_factor": 0.9894,
"strikeout_factor": 1.028,
"walk_factor": 0.942,
"homer_factor": 1.0183,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592332",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9894,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9894,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0183,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.028,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 9,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20260930 | 20260930_CHC@SD | home | Nick Pivetta | Nick Pivetta | True | 5.0 | 3.1 | -5 | 2 | 1 | -1 | 5/3 | 4/2 | 5/4 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 2.855769230769231,
"WHIP": 1.0096153846153846,
"IP": 34.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.156,
"sample_weight": 0.45,
"run_prevention_factor": 0.9867,
"strikeout_factor": 1.0141,
"walk_factor": 0.9685,
"homer_factor": 1.0105,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 5.7,
"woba": 0.249,
"xwoba": 0.277,
"barrel_percent": 10.1,
"hard_hit_percent": 38.2,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 34.2,
"season_ERA": 2.856,
"season_WHIP": 1.01,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "601713",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 3.0,
"R": 3.0,
"H": 15.0,
"BB": 2.0,
"SO": 22.0,
"HR": 2.0,
"BF": 83.0,
"Pitches": 341.0
},
"per_game": {
"IP": 4.1,
"ER": 0.6,
"R": 0.6,
"H": 3.0,
"BB": 0.4,
"SO": 4.4,
"HR": 0.4,
"BF": 16.6,
"Pitches": 68.2
},
"rates": {
"ERA": 1.2462,
"WHIP": 0.7846,
"ER_per_IP": 0.13846,
"H_per_IP": 0.69231,
"BB_per_IP": 0.09231,
"SO_per_IP": 1.01538,
"HR_per_IP": 0.09231
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 34.2,
"ER": 11.0,
"R": 11.0,
"H": 27.0,
"BB": 8.0,
"SO": 42.0,
"HR": 2.0,
"BF": 140.0,
"Pitches": 578.0
},
"per_game": {
"IP": 4.1,
"ER": 1.375,
"R": 1.375,
"H": 3.375,
"BB": 1.0,
"SO": 5.25,
"HR": 0.25,
"BF": 17.5,
"Pitches": 72.25
},
"rates": {
"ERA": 2.8558,
"WHIP": 1.0096,
"ER_per_IP": 0.31731,
"H_per_IP": 0.77885,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.21154,
"HR_per_IP": 0.05769
}
},
"season": {
"games": 8,
"totals": {
"IP": 34.2,
"ER": 11.0,
"R": 11.0,
"H": 27.0,
"BB": 8.0,
"SO": 42.0,
"HR": 2.0,
"BF": 140.0,
"Pitches": 578.0
},
"per_game": {
"IP": 4.1,
"ER": 1.375,
"R": 1.375,
"H": 3.375,
"BB": 1.0,
"SO": 5.25,
"HR": 0.25,
"BF": 17.5,
"Pitches": 72.25
},
"rates": {
"ERA": 2.8558,
"WHIP": 1.0096,
"ER_per_IP": 0.31731,
"H_per_IP": 0.77885,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.21154,
"HR_per_IP": 0.05769
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.457,
"predicted_H": 3.77,
"predicted_BB": 1.053,
"predicted_SO": 4.696,
"predicted_HR": 0.492,
"predicted_ERA": 2.8569,
"predicted_WHIP": 1.0508
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.457,
"final": 2.7603,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.77,
"final": 4.4004,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.053,
"final": 2.5633,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.696,
"final": 4.8518,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.492,
"final": 1.2648,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8569,
"final": 2.8569,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0508,
"final": 1.0508,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 34.2,
"ER": 11,
"H": 27,
"BB": 8,
"SO": 42,
"HR": 2,
"ERA": 2.8557692307692304,
"WHIP": 1.0096153846153846,
"K9": 10.903846153846152,
"HR9": 0.5192307692307692,
"games_pitched": 8,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 0.8071273378927056,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "601713",
"player_name": "Nick Pivetta",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.9916,
"defense_index": 1.0692,
"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.1674,
"defense_index": 1.0357,
"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.0084,
"opponent_offense_edge": 0.1674,
"defense_strength": 0.0692,
"opponent_defense_weakness": -0.0357,
"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": "601713",
"profile": {
"available": true,
"pitcher_id": "601713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 100.0,
"k_percent": 30.0,
"bb_percent": 5.7,
"woba": 0.249,
"xwoba": 0.277,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 38.2,
"avg_best_speed": 80.1978,
"avg_hyper_speed": 93.7991,
"whiff_percent": 22.8,
"swing_percent": 47.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.506,
"command_and_miss": 0.5629,
"regression_edge": -0.8,
"xwoba_edge": 1.0,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.3429,
"bb_edge": 0.875,
"pitch_design_score": -0.0365
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "601713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 66,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 89.21211734682227,
"release_spin_rate": 2437.193161283574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 89.21211734682227,
"release_spin_rate": 2437.193161283574,
"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.2121,
"release_spin_rate": 2437.1932,
"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.0365,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.261,
"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.156,
"sample_weight": 0.45,
"run_prevention_factor": 0.9867,
"strikeout_factor": 1.0141,
"walk_factor": 0.9685,
"homer_factor": 1.0105,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "601713",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.994,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.994,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9858,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0047,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0063,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20260930 | 20260930_CHW@HOU | away | Sean Burke | Sean Burke | True | 5.0 | 4.0 | -3 | 2 | 3 | 1 | 8/4 | 1/0 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3423597678916828,
"WHIP": 1.195357833655706,
"IP": 172.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.272,
"recent_avg_IP": 4.267,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1204,
"sample_weight": 1.0,
"run_prevention_factor": 0.9898,
"strikeout_factor": 1.0229,
"walk_factor": 0.99,
"homer_factor": 1.0144,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 8.7,
"woba": 0.302,
"xwoba": 0.3,
"barrel_percent": 8.3,
"hard_hit_percent": 38.8,
"whiff_percent": 25.5
},
"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": 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": "680732",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 9.0,
"R": 10.0,
"H": 22.0,
"BB": 12.0,
"SO": 24.0,
"HR": 1.0,
"BF": 103.0,
"Pitches": 432.0
},
"per_game": {
"IP": 4.2,
"ER": 1.8,
"R": 2.0,
"H": 4.4,
"BB": 2.4,
"SO": 4.8,
"HR": 0.2,
"BF": 20.6,
"Pitches": 86.4
},
"rates": {
"ERA": 3.4714,
"WHIP": 1.4571,
"ER_per_IP": 0.38571,
"H_per_IP": 0.94286,
"BB_per_IP": 0.51429,
"SO_per_IP": 1.02857,
"HR_per_IP": 0.04286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 22.0,
"R": 23.0,
"H": 44.0,
"BB": 25.0,
"SO": 45.0,
"HR": 6.0,
"BF": 211.0,
"Pitches": 879.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.3,
"H": 4.4,
"BB": 2.5,
"SO": 4.5,
"HR": 0.6,
"BF": 21.1,
"Pitches": 87.9
},
"rates": {
"ERA": 4.125,
"WHIP": 1.4375,
"ER_per_IP": 0.45833,
"H_per_IP": 0.91667,
"BB_per_IP": 0.52083,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.125
}
},
"season": {
"games": 32,
"totals": {
"IP": 172.1,
"ER": 64.0,
"R": 67.0,
"H": 144.0,
"BB": 62.0,
"SO": 185.0,
"HR": 19.0,
"BF": 716.0,
"Pitches": 2878.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0938,
"H": 4.5,
"BB": 1.9375,
"SO": 5.7812,
"HR": 0.5938,
"BF": 22.375,
"Pitches": 89.9375
},
"rates": {
"ERA": 3.3424,
"WHIP": 1.1954,
"ER_per_IP": 0.37137,
"H_per_IP": 0.83559,
"BB_per_IP": 0.35977,
"SO_per_IP": 1.0735,
"HR_per_IP": 0.11025
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.039,
"predicted_H": 4.45,
"predicted_BB": 2.274,
"predicted_SO": 4.809,
"predicted_HR": 0.452,
"predicted_ERA": 3.8014,
"predicted_WHIP": 1.3931
}
},
"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.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.039,
"final": 2.0231,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.45,
"final": 5.8951,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.274,
"final": 1.7554,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.809,
"final": 4.4797,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.452,
"final": 0.6751,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8014,
"final": 3.8014,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3931,
"final": 1.3931,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 22,
"H": 44,
"BB": 25,
"SO": 45,
"HR": 6,
"ERA": 4.125,
"WHIP": 1.4375,
"K9": 8.4375,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.9606129148157826,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680732",
"player_name": "Sean Burke",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"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.0656,
"defense_index": 1.0114,
"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.008,
"defense_index": 0.9507,
"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.0656,
"opponent_offense_edge": 0.008,
"defense_strength": 0.0114,
"opponent_defense_weakness": 0.0493,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0061,
"run_prevention": 0.9925,
"strikeout": 1.0039
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 644.0,
"k_percent": 25.8,
"bb_percent": 8.7,
"woba": 0.302,
"xwoba": 0.3,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 38.8,
"avg_best_speed": 79.3949,
"avg_hyper_speed": 93.9697,
"whiff_percent": 25.5,
"swing_percent": 49.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.0777,
"command_and_miss": 0.2779,
"regression_edge": 0.0571,
"xwoba_edge": 0.3429,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.1286,
"whiff_edge": 0.0429,
"bb_edge": 0.125,
"pitch_design_score": -0.0129
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680732",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.63367275202977,
"release_spin_rate": 2515.4651388536104,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.63367275202977,
"release_spin_rate": 2515.4651388536104,
"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.6337,
"release_spin_rate": 2515.4651,
"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.0129,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0923,
"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.1204,
"sample_weight": 1.0,
"run_prevention_factor": 0.9898,
"strikeout_factor": 1.0229,
"walk_factor": 0.99,
"homer_factor": 1.0144,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680732",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9898,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9898,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 0.99,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0144,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0229,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20260930 | 20260930_CHW@HOU | home | Hunter Brown | Hunter Brown | True | 5.2 | 0.2 | -15 | 3 | 3 | 0 | 7/5 | 2/1 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.186335403726708,
"WHIP": 1.2670807453416149,
"IP": 107.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.367,
"recent_avg_IP": 5.267,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4695,
"sample_weight": 1.0,
"run_prevention_factor": 0.9601,
"strikeout_factor": 1.0394,
"walk_factor": 1.06,
"homer_factor": 0.9472,
"regression_flag": "neutral",
"k_percent": 27.5,
"bb_percent": 12.2,
"woba": 0.289,
"xwoba": 0.282,
"barrel_percent": 6.0,
"hard_hit_percent": 36.9,
"whiff_percent": 26.7
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 107.1,
"season_ERA": 3.186,
"season_WHIP": 1.267,
"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": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686613",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 8.0,
"R": 10.0,
"H": 20.0,
"BB": 11.0,
"SO": 38.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 480.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 2.0,
"H": 4.0,
"BB": 2.2,
"SO": 7.6,
"HR": 0.2,
"BF": 22.2,
"Pitches": 96.0
},
"rates": {
"ERA": 2.7342,
"WHIP": 1.1772,
"ER_per_IP": 0.3038,
"H_per_IP": 0.75949,
"BB_per_IP": 0.41772,
"SO_per_IP": 1.44304,
"HR_per_IP": 0.03797
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 18.0,
"R": 20.0,
"H": 43.0,
"BB": 25.0,
"SO": 69.0,
"HR": 5.0,
"BF": 228.0,
"Pitches": 955.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 2.0,
"H": 4.3,
"BB": 2.5,
"SO": 6.9,
"HR": 0.5,
"BF": 22.8,
"Pitches": 95.5
},
"rates": {
"ERA": 2.9634,
"WHIP": 1.2439,
"ER_per_IP": 0.32927,
"H_per_IP": 0.78659,
"BB_per_IP": 0.45732,
"SO_per_IP": 1.2622,
"HR_per_IP": 0.09146
}
},
"season": {
"games": 20,
"totals": {
"IP": 107.1,
"ER": 38.0,
"R": 42.0,
"H": 81.0,
"BB": 55.0,
"SO": 124.0,
"HR": 11.0,
"BF": 451.0,
"Pitches": 1881.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9,
"R": 2.1,
"H": 4.05,
"BB": 2.75,
"SO": 6.2,
"HR": 0.55,
"BF": 22.55,
"Pitches": 94.05
},
"rates": {
"ERA": 3.1863,
"WHIP": 1.2671,
"ER_per_IP": 0.35404,
"H_per_IP": 0.75466,
"BB_per_IP": 0.51242,
"SO_per_IP": 1.15528,
"HR_per_IP": 0.10248
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.948,
"predicted_H": 4.381,
"predicted_BB": 2.355,
"predicted_SO": 6.723,
"predicted_HR": 0.461,
"predicted_ERA": 3.2468,
"predicted_WHIP": 1.2473
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.948,
"final": 2.4051,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.381,
"final": 5.519,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.355,
"final": 2.2008,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.723,
"final": 4.6709,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.461,
"final": 0.2607,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2468,
"final": 3.2468,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2473,
"final": 1.2473,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 18,
"H": 43,
"BB": 25,
"SO": 69,
"HR": 5,
"ERA": 2.963414634146341,
"WHIP": 1.2439024390243902,
"K9": 11.359756097560975,
"HR9": 0.823170731707317,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.8250946221328557,
"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": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686613",
"player_name": "Hunter Brown",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 7.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"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": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 7.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.008,
"defense_index": 0.9507,
"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.0656,
"defense_index": 1.0114,
"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.008,
"opponent_offense_edge": 0.0656,
"defense_strength": -0.0493,
"opponent_defense_weakness": -0.0114,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9898,
"run_prevention": 1.023,
"strikeout": 0.9902
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686613",
"profile": {
"available": true,
"pitcher_id": "686613",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 386.0,
"k_percent": 27.5,
"bb_percent": 12.2,
"woba": 0.289,
"xwoba": 0.282,
"sweet_spot_percent": 27.6,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 36.9,
"avg_best_speed": 74.1859,
"avg_hyper_speed": 93.2534,
"whiff_percent": 26.7,
"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": 0.6565,
"command_and_miss": 0.2721,
"regression_edge": 0.2,
"xwoba_edge": 0.8571,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.2143,
"bb_edge": -0.75,
"pitch_design_score": 0.1385
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686613",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.33714491013515,
"release_spin_rate": 2193.36097163242,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.33714491013515,
"release_spin_rate": 2193.36097163242,
"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.3371,
"release_spin_rate": 2193.361,
"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.1385,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9891,
"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.4695,
"sample_weight": 1.0,
"run_prevention_factor": 0.9601,
"strikeout_factor": 1.0394,
"walk_factor": 1.06,
"homer_factor": 0.9472,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "686613",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9601,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9601,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.06,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9472,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0394,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 28,
"Pitches": 102,
"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 -15 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20260930 | 20260930_PHI@ATL | away | Cristopher Sánchez | Cristopher Sánchez | True | 6.1 | 6.2 | 1 | 2 | 3 | 1 | 5/6 | 1/5 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9130434782608696,
"WHIP": 1.2028985507246377,
"IP": 207.0,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 6.273,
"recent_avg_IP": 6.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4376,
"sample_weight": 1.0,
"run_prevention_factor": 0.9628,
"strikeout_factor": 1.0629,
"walk_factor": 0.922,
"homer_factor": 1.0056,
"regression_flag": "neutral",
"k_percent": 27.0,
"bb_percent": 5.3,
"woba": 0.296,
"xwoba": 0.285,
"barrel_percent": 7.5,
"hard_hit_percent": 42.0,
"whiff_percent": 31.3
},
"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": 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": "650911",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 18.0,
"R": 18.0,
"H": 34.0,
"BB": 6.0,
"SO": 29.0,
"HR": 5.0,
"BF": 131.0,
"Pitches": 485.0
},
"per_game": {
"IP": 6.1,
"ER": 3.6,
"R": 3.6,
"H": 6.8,
"BB": 1.2,
"SO": 5.8,
"HR": 1.0,
"BF": 26.2,
"Pitches": 97.0
},
"rates": {
"ERA": 5.1158,
"WHIP": 1.2632,
"ER_per_IP": 0.56842,
"H_per_IP": 1.07368,
"BB_per_IP": 0.18947,
"SO_per_IP": 0.91579,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 25.0,
"R": 25.0,
"H": 63.0,
"BB": 12.0,
"SO": 63.0,
"HR": 7.0,
"BF": 254.0,
"Pitches": 956.0
},
"per_game": {
"IP": 6.1,
"ER": 2.5,
"R": 2.5,
"H": 6.3,
"BB": 1.2,
"SO": 6.3,
"HR": 0.7,
"BF": 25.4,
"Pitches": 95.6
},
"rates": {
"ERA": 3.6096,
"WHIP": 1.2032,
"ER_per_IP": 0.40107,
"H_per_IP": 1.0107,
"BB_per_IP": 0.19251,
"SO_per_IP": 1.0107,
"HR_per_IP": 0.1123
}
},
"season": {
"games": 33,
"totals": {
"IP": 207.0,
"ER": 67.0,
"R": 73.0,
"H": 204.0,
"BB": 45.0,
"SO": 231.0,
"HR": 19.0,
"BF": 857.0,
"Pitches": 3158.0
},
"per_game": {
"IP": 6.1,
"ER": 2.0303,
"R": 2.2121,
"H": 6.1818,
"BB": 1.3636,
"SO": 7.0,
"HR": 0.5758,
"BF": 25.9697,
"Pitches": 95.697
},
"rates": {
"ERA": 2.913,
"WHIP": 1.2029,
"ER_per_IP": 0.32367,
"H_per_IP": 0.98551,
"BB_per_IP": 0.21739,
"SO_per_IP": 1.11594,
"HR_per_IP": 0.09179
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.962,
"predicted_H": 6.507,
"predicted_BB": 1.394,
"predicted_SO": 6.22,
"predicted_HR": 0.832,
"predicted_ERA": 4.2095,
"predicted_WHIP": 1.2475
}
},
"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.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.962,
"final": 2.1662,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.507,
"final": 5.8958,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.394,
"final": 1.2342,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.22,
"final": 4.5084,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.832,
"final": 0.4945,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2095,
"final": 4.2095,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2475,
"final": 1.2475,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.1,
"ER": 25,
"H": 63,
"BB": 12,
"SO": 63,
"HR": 7,
"ERA": 3.609625668449198,
"WHIP": 1.2032085561497328,
"K9": 9.09625668449198,
"HR9": 1.0106951871657754,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.8967760164200607,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 2.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.1,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650911",
"player_name": "Cristopher S\u00e1nchez",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"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.9788,
"defense_index": 1.0436,
"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.013
},
"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.0186,
"defense_index": 1.1636,
"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.1428,
"offense_edge": -0.0212,
"opponent_offense_edge": 0.0186,
"defense_strength": 0.0436,
"opponent_defense_weakness": -0.1636,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9949,
"run_prevention": 1.0058,
"strikeout": 0.9942
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650911",
"profile": {
"available": true,
"pitcher_id": "650911",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 773.0,
"k_percent": 27.0,
"bb_percent": 5.3,
"woba": 0.296,
"xwoba": 0.285,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 42.0,
"avg_best_speed": 78.068,
"avg_hyper_speed": 94.5227,
"whiff_percent": 31.3,
"swing_percent": 50.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.3427,
"command_and_miss": 0.815,
"regression_edge": 0.3143,
"xwoba_edge": 0.7714,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.5857,
"whiff_edge": 0.8714,
"bb_edge": 0.975,
"pitch_design_score": 0.0288
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.3783652742236,
"release_spin_rate": 2082.1207290628663,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.3783652742236,
"release_spin_rate": 2082.1207290628663,
"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.3784,
"release_spin_rate": 2082.1207,
"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.0288,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2055,
"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.4376,
"sample_weight": 1.0,
"run_prevention_factor": 0.9628,
"strikeout_factor": 1.0629,
"walk_factor": 0.922,
"homer_factor": 1.0056,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "650911",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9628,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 0.9628,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.922,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0056,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0629,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20260930 | 20260930_PHI@ATL | home | Tyler Mahle | Tyler Mahle | True | 6.0 | 7.0 | 3 | 0 | 1 | 1 | 2/6 | 2/1 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9865771812080535,
"WHIP": 1.2348993288590604,
"IP": 149.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.519,
"recent_avg_IP": 6.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.988,
"walk_factor": 0.966,
"homer_factor": 0.9832,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.311,
"xwoba": 0.306,
"barrel_percent": 6.8,
"hard_hit_percent": 37.1,
"whiff_percent": 22.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": 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": "641816",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 8.0,
"R": 10.0,
"H": 24.0,
"BB": 4.0,
"SO": 25.0,
"HR": 4.0,
"BF": 117.0,
"Pitches": 469.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 2.0,
"H": 4.8,
"BB": 0.8,
"SO": 5.0,
"HR": 0.8,
"BF": 23.4,
"Pitches": 93.8
},
"rates": {
"ERA": 2.3478,
"WHIP": 0.913,
"ER_per_IP": 0.26087,
"H_per_IP": 0.78261,
"BB_per_IP": 0.13043,
"SO_per_IP": 0.81522,
"HR_per_IP": 0.13043
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 17.0,
"R": 19.0,
"H": 48.0,
"BB": 11.0,
"SO": 57.0,
"HR": 7.0,
"BF": 235.0,
"Pitches": 923.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.9,
"H": 4.8,
"BB": 1.1,
"SO": 5.7,
"HR": 0.7,
"BF": 23.5,
"Pitches": 92.3
},
"rates": {
"ERA": 2.55,
"WHIP": 0.9833,
"ER_per_IP": 0.28333,
"H_per_IP": 0.8,
"BB_per_IP": 0.18333,
"SO_per_IP": 0.95,
"HR_per_IP": 0.11667
}
},
"season": {
"games": 27,
"totals": {
"IP": 149.0,
"ER": 66.0,
"R": 69.0,
"H": 138.0,
"BB": 46.0,
"SO": 137.0,
"HR": 20.0,
"BF": 614.0,
"Pitches": 2402.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4444,
"R": 2.5556,
"H": 5.1111,
"BB": 1.7037,
"SO": 5.0741,
"HR": 0.7407,
"BF": 22.7407,
"Pitches": 88.963
},
"rates": {
"ERA": 3.9866,
"WHIP": 1.2349,
"ER_per_IP": 0.44295,
"H_per_IP": 0.92617,
"BB_per_IP": 0.30872,
"SO_per_IP": 0.91946,
"HR_per_IP": 0.13423
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.006,
"predicted_H": 5.013,
"predicted_BB": 1.277,
"predicted_SO": 5.299,
"predicted_HR": 0.772,
"predicted_ERA": 3.0382,
"predicted_WHIP": 1.0582
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.006,
"final": 1.1715,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.013,
"final": 3.7596,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.277,
"final": 1.5778,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.299,
"final": 6.4226,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.772,
"final": 0.4509,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0382,
"final": 3.0382,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0582,
"final": 1.0582,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 17,
"H": 48,
"BB": 11,
"SO": 57,
"HR": 7,
"ERA": 2.55,
"WHIP": 0.9833333333333333,
"K9": 8.55,
"HR9": 1.05,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 0.7720712481491159,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"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": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0186,
"defense_index": 1.1636,
"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.9788,
"defense_index": 1.0436,
"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.013
},
"edges": {
"quality_edge": 0.1428,
"offense_edge": 0.0186,
"opponent_offense_edge": -0.0212,
"defense_strength": 0.1636,
"opponent_defense_weakness": -0.0436,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0115,
"run_prevention": 0.9731,
"strikeout": 1.006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 543.0,
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.311,
"xwoba": 0.306,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 37.1,
"avg_best_speed": 80.0191,
"avg_hyper_speed": 93.8316,
"whiff_percent": 22.9,
"swing_percent": 45.6
},
"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.0664,
"command_and_miss": -0.0171,
"regression_edge": 0.1429,
"xwoba_edge": 0.1714,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.1143,
"whiff_edge": -0.3286,
"bb_edge": 0.425,
"pitch_design_score": -0.0126
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.64026118417685,
"release_spin_rate": 2134.9981031675284,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.64026118417685,
"release_spin_rate": 2134.9981031675284,
"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.6403,
"release_spin_rate": 2134.9981,
"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.0126,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0897,
"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.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.988,
"walk_factor": 0.966,
"homer_factor": 0.9832,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641816",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9961,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9961,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.966,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9832,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.988,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260930_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"
}
} |
| 20261001 | 20261001_PHI@ATL | away | Aaron Nola | Aaron Nola | True | 5.1 | 1.2 | -11 | 2 | 3 | 1 | 9/2 | 2/2 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.671102661596958,
"WHIP": 1.3460076045627376,
"IP": 175.1,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 5.313,
"recent_avg_IP": 5.467,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0047,
"sample_weight": 1.0,
"run_prevention_factor": 1.0004,
"strikeout_factor": 1.0206,
"walk_factor": 0.974,
"homer_factor": 1.0528,
"regression_flag": "positive_pitcher_regression",
"k_percent": 23.8,
"bb_percent": 7.9,
"woba": 0.346,
"xwoba": 0.314,
"barrel_percent": 9.3,
"hard_hit_percent": 40.3,
"whiff_percent": 27.1
},
"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": 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": "605400",
"report_date": "20261001",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 10.0,
"R": 10.0,
"H": 21.0,
"BB": 8.0,
"SO": 20.0,
"HR": 5.0,
"BF": 106.0,
"Pitches": 384.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 4.2,
"BB": 1.6,
"SO": 4.0,
"HR": 1.0,
"BF": 21.2,
"Pitches": 76.8
},
"rates": {
"ERA": 3.2927,
"WHIP": 1.061,
"ER_per_IP": 0.36585,
"H_per_IP": 0.76829,
"BB_per_IP": 0.29268,
"SO_per_IP": 0.73171,
"HR_per_IP": 0.18293
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 17.0,
"R": 17.0,
"H": 45.0,
"BB": 18.0,
"SO": 56.0,
"HR": 9.0,
"BF": 222.0,
"Pitches": 874.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7,
"R": 1.7,
"H": 4.5,
"BB": 1.8,
"SO": 5.6,
"HR": 0.9,
"BF": 22.2,
"Pitches": 87.4
},
"rates": {
"ERA": 2.7651,
"WHIP": 1.1386,
"ER_per_IP": 0.30723,
"H_per_IP": 0.81325,
"BB_per_IP": 0.3253,
"SO_per_IP": 1.01205,
"HR_per_IP": 0.16265
}
},
"season": {
"games": 33,
"totals": {
"IP": 175.1,
"ER": 91.0,
"R": 93.0,
"H": 177.0,
"BB": 59.0,
"SO": 177.0,
"HR": 37.0,
"BF": 744.0,
"Pitches": 2946.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7576,
"R": 2.8182,
"H": 5.3636,
"BB": 1.7879,
"SO": 5.3636,
"HR": 1.1212,
"BF": 22.5455,
"Pitches": 89.2727
},
"rates": {
"ERA": 4.6711,
"WHIP": 1.346,
"ER_per_IP": 0.51901,
"H_per_IP": 1.00951,
"BB_per_IP": 0.3365,
"SO_per_IP": 1.00951,
"HR_per_IP": 0.21103
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.141,
"predicted_H": 4.632,
"predicted_BB": 1.748,
"predicted_SO": 4.846,
"predicted_HR": 0.962,
"predicted_ERA": 3.5453,
"predicted_WHIP": 1.1739
}
},
"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": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.141,
"final": 2.0838,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.632,
"final": 6.4037,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.748,
"final": 1.8502,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.846,
"final": 5.3141,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.962,
"final": 0.9774,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5453,
"final": 3.5453,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1739,
"final": 1.1739,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 17,
"H": 45,
"BB": 18,
"SO": 56,
"HR": 9,
"ERA": 2.7650602409638556,
"WHIP": 1.13855421686747,
"K9": 9.10843373493976,
"HR9": 1.4638554216867472,
"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-26T00:00:00"
},
"recent_form_boost": 0.8005397153558229,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 9.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605400",
"player_name": "Aaron Nola",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.979,
"defense_index": 1.0435,
"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.013
},
"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.0188,
"defense_index": 1.1635,
"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.1428,
"offense_edge": -0.021,
"opponent_offense_edge": 0.0188,
"defense_strength": 0.0435,
"opponent_defense_weakness": -0.1635,
"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": "605400",
"profile": {
"available": true,
"pitcher_id": "605400",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 687.0,
"k_percent": 23.8,
"bb_percent": 7.9,
"woba": 0.346,
"xwoba": 0.314,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 40.3,
"avg_best_speed": 76.9261,
"avg_hyper_speed": 94.3067,
"whiff_percent": 27.1,
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2651,
"command_and_miss": 0.2693,
"regression_edge": 0.9143,
"xwoba_edge": -0.0571,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.3429,
"whiff_edge": 0.2714,
"bb_edge": 0.325,
"pitch_design_score": -0.2211
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"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.9161751557338,
"release_spin_rate": 2297.230473518228,
"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.9161751557338,
"release_spin_rate": 2297.230473518228,
"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.9162,
"release_spin_rate": 2297.2305,
"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.2211,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5792,
"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.0047,
"sample_weight": 1.0,
"run_prevention_factor": 1.0004,
"strikeout_factor": 1.0206,
"walk_factor": 0.974,
"homer_factor": 1.0528,
"woba_minus_xwoba": 0.032,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "605400",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0004,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0004,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0528,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0206,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 9,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was -7."
}
],
"provenance": {
"prediction": "output/games/20261001_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"
}
} |
| 20261001 | 20261001_PHI@ATL | home | Ray Kerr | Ray Kerr | True | 4.2 | 3.1 | -4 | 0 | 0 | 0 | 0/1 | 0/1 | 5/2 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 1.4727272727272729,
"WHIP": 0.6000000000000001,
"IP": 18.1,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1441,
"sample_weight": 0.45,
"run_prevention_factor": 0.9878,
"strikeout_factor": 0.9815,
"walk_factor": 0.9442,
"homer_factor": 0.9609,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.7,
"bb_percent": 3.0,
"woba": 0.209,
"xwoba": 0.281,
"barrel_percent": 5.9,
"hard_hit_percent": 31.4,
"whiff_percent": 23.4
},
"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.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.777,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4303,
"prior_weight": 0.5697
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678061",
"report_date": "20261001",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 11.2,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 1.0,
"SO": 6.0,
"HR": 1.0,
"BF": 39.0,
"Pitches": 127.0
},
"per_game": {
"IP": 2.1,
"ER": 0.2,
"R": 0.2,
"H": 1.2,
"BB": 0.2,
"SO": 1.2,
"HR": 0.2,
"BF": 7.8,
"Pitches": 25.4
},
"rates": {
"ERA": 0.7714,
"WHIP": 0.6,
"ER_per_IP": 0.08571,
"H_per_IP": 0.51429,
"BB_per_IP": 0.08571,
"SO_per_IP": 0.51429,
"HR_per_IP": 0.08571
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 18.1,
"ER": 3.0,
"R": 3.0,
"H": 9.0,
"BB": 2.0,
"SO": 11.0,
"HR": 2.0,
"BF": 66.0,
"Pitches": 212.0
},
"per_game": {
"IP": 2.0,
"ER": 0.3333,
"R": 0.3333,
"H": 1.0,
"BB": 0.2222,
"SO": 1.2222,
"HR": 0.2222,
"BF": 7.3333,
"Pitches": 23.5556
},
"rates": {
"ERA": 1.4727,
"WHIP": 0.6,
"ER_per_IP": 0.16364,
"H_per_IP": 0.49091,
"BB_per_IP": 0.10909,
"SO_per_IP": 0.6,
"HR_per_IP": 0.10909
}
},
"season": {
"games": 9,
"totals": {
"IP": 18.1,
"ER": 3.0,
"R": 3.0,
"H": 9.0,
"BB": 2.0,
"SO": 11.0,
"HR": 2.0,
"BF": 66.0,
"Pitches": 212.0
},
"per_game": {
"IP": 2.0,
"ER": 0.3333,
"R": 0.3333,
"H": 1.0,
"BB": 0.2222,
"SO": 1.2222,
"HR": 0.2222,
"BF": 7.3333,
"Pitches": 23.5556
},
"rates": {
"ERA": 1.4727,
"WHIP": 0.6,
"ER_per_IP": 0.16364,
"H_per_IP": 0.49091,
"BB_per_IP": 0.10909,
"SO_per_IP": 0.6,
"HR_per_IP": 0.10909
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.233,
"predicted_H": 2.808,
"predicted_BB": 0.927,
"predicted_SO": 2.769,
"predicted_HR": 0.45,
"predicted_ERA": 3.0748,
"predicted_WHIP": 1.0352
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5907,
"form_weight": 0.4093,
"form_reliability": 0.4303,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.777,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4303,
"prior_weight": 0.5697
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.233,
"final": 0.5047,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 2.808,
"final": 1.1493,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.927,
"final": 0.3794,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.769,
"final": 4.0868,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.45,
"final": 0.1842,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0748,
"final": 3.0748,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0352,
"final": 1.0352,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 18.1,
"ER": 3,
"H": 9,
"BB": 2,
"SO": 11,
"HR": 2,
"ERA": 1.4727272727272729,
"WHIP": 0.6000000000000001,
"K9": 5.4,
"HR9": 0.9818181818181819,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.7801282179497471,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.777,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4303,
"prior_weight": 0.5697
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678061",
"player_name": "Ray Kerr",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0188,
"defense_index": 1.1635,
"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.979,
"defense_index": 1.0435,
"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.013
},
"edges": {
"quality_edge": 0.1428,
"offense_edge": 0.0188,
"opponent_offense_edge": -0.021,
"defense_strength": 0.1635,
"opponent_defense_weakness": -0.0435,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0115,
"run_prevention": 0.9731,
"strikeout": 1.006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678061",
"profile": {
"available": true,
"pitcher_id": "678061",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 50.0,
"k_percent": 16.7,
"bb_percent": 3.0,
"woba": 0.209,
"xwoba": 0.281,
"sweet_spot_percent": 27.5,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 31.4,
"avg_best_speed": 77.8999,
"avg_hyper_speed": 93.2085,
"whiff_percent": 23.4,
"swing_percent": 52.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9908,
"command_and_miss": -0.1271,
"regression_edge": -2.0,
"xwoba_edge": 0.8857,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.9286,
"whiff_edge": -0.2571,
"bb_edge": 1.55,
"pitch_design_score": -0.0191
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678061",
"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.52283282543786,
"release_spin_rate": 2148.8918500733625,
"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.52283282543786,
"release_spin_rate": 2148.8918500733625,
"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.5228,
"release_spin_rate": 2148.8919,
"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.0191,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1365,
"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.1441,
"sample_weight": 0.45,
"run_prevention_factor": 0.9878,
"strikeout_factor": 0.9815,
"walk_factor": 0.9442,
"homer_factor": 0.9609,
"woba_minus_xwoba": -0.072,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "678061",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9945,
"adjusted": 0
},
"predicted_H": {
"original": 3.0,
"factor": 0.9945,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9749,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9824,
"adjusted": 0
},
"predicted_SO": {
"original": 0.0,
"factor": 0.9917,
"adjusted": 0
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 14,
"Pitches": 71,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20261001_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"
}
} |
| 20261003 | 20261003_ATL@LAD | away | Dylan Dodd | Dylan Dodd | True | 5.2 | 3.0 | -8 | 3 | 0 | -3 | 3/2 | 3/0 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.682119205298013,
"WHIP": 0.9139072847682119,
"IP": 50.1,
"games_started": null,
"games_pitched": 49,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2871,
"sample_weight": 0.672,
"run_prevention_factor": 0.9756,
"strikeout_factor": 1.0365,
"walk_factor": 0.9731,
"homer_factor": 0.9948,
"regression_flag": "neutral",
"k_percent": 27.3,
"bb_percent": 7.2,
"woba": 0.26,
"xwoba": 0.273,
"barrel_percent": 8.9,
"hard_hit_percent": 37.1,
"whiff_percent": 29.5
},
"espn_rank": {
"rank": 46,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 50.1,
"season_ERA": 2.682,
"season_WHIP": 0.914,
"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": 10.373,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6748,
"prior_weight": 0.3252
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "689266",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 49,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 0.0,
"SO": 6.0,
"HR": 1.0,
"BF": 20.0,
"Pitches": 77.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.0,
"SO": 1.2,
"HR": 0.2,
"BF": 4.0,
"Pitches": 15.4
},
"rates": {
"ERA": 5.4,
"WHIP": 0.8,
"ER_per_IP": 0.6,
"H_per_IP": 0.8,
"BB_per_IP": 0.0,
"SO_per_IP": 1.2,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 5.0,
"R": 5.0,
"H": 8.0,
"BB": 1.0,
"SO": 10.0,
"HR": 3.0,
"BF": 38.0,
"Pitches": 138.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.8,
"BB": 0.1,
"SO": 1.0,
"HR": 0.3,
"BF": 3.8,
"Pitches": 13.8
},
"rates": {
"ERA": 4.8214,
"WHIP": 0.9643,
"ER_per_IP": 0.53571,
"H_per_IP": 0.85714,
"BB_per_IP": 0.10714,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.32143
}
},
"season": {
"games": 49,
"totals": {
"IP": 50.1,
"ER": 15.0,
"R": 15.0,
"H": 32.0,
"BB": 14.0,
"SO": 53.0,
"HR": 7.0,
"BF": 197.0,
"Pitches": 793.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3061,
"R": 0.3061,
"H": 0.6531,
"BB": 0.2857,
"SO": 1.0816,
"HR": 0.1429,
"BF": 4.0204,
"Pitches": 16.1837
},
"rates": {
"ERA": 2.6821,
"WHIP": 0.9139,
"ER_per_IP": 0.29801,
"H_per_IP": 0.63576,
"BB_per_IP": 0.27815,
"SO_per_IP": 1.05298,
"HR_per_IP": 0.13907
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.298,
"predicted_H": 2.143,
"predicted_BB": 0.469,
"predicted_SO": 2.676,
"predicted_HR": 0.512,
"predicted_ERA": 4.6395,
"predicted_WHIP": 1.0374
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4874,
"form_weight": 0.5126,
"form_reliability": 0.6748,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.373,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6748,
"prior_weight": 0.3252
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.298,
"final": 2.6149,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.143,
"final": 3.0481,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.469,
"final": 1.7026,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.676,
"final": 4.2961,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.512,
"final": 1.2372,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6395,
"final": 4.6395,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0374,
"final": 1.0374,
"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.1,
"ER": 5,
"H": 8,
"BB": 1,
"SO": 10,
"HR": 3,
"ERA": 4.821428571428572,
"WHIP": 0.9642857142857144,
"K9": 9.642857142857144,
"HR9": 2.8928571428571432,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-01T00:00:00"
},
"recent_form_boost": 1.00867242009206,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.373,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6748,
"prior_weight": 0.3252
}
},
{
"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": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689266",
"player_name": "Dylan Dodd",
"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": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.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": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0195,
"defense_index": 1.1626,
"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": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"edges": {
"quality_edge": -0.2008,
"offense_edge": 0.0195,
"opponent_offense_edge": 0.1006,
"defense_strength": 0.1626,
"opponent_defense_weakness": -0.213,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.0099,
"strikeout": 0.9859
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689266",
"profile": {
"available": true,
"pitcher_id": "689266",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 168.0,
"k_percent": 27.3,
"bb_percent": 7.2,
"woba": 0.26,
"xwoba": 0.273,
"sweet_spot_percent": 37.9,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 37.1,
"avg_best_speed": 80.0941,
"avg_hyper_speed": 93.4986,
"whiff_percent": 29.5,
"swing_percent": 54.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5212,
"command_and_miss": 0.6493,
"regression_edge": -0.3714,
"xwoba_edge": 1.1143,
"barrel_edge": -0.3778,
"hard_hit_edge": 0.1143,
"whiff_edge": 0.6143,
"bb_edge": 0.5,
"pitch_design_score": 0.0466
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "689266",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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.6954,
"release_spin_rate": 2142.6259,
"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.0466,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3325,
"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.2871,
"sample_weight": 0.672,
"run_prevention_factor": 0.9756,
"strikeout_factor": 1.0365,
"walk_factor": 0.9731,
"homer_factor": 0.9948,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "689266",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9836,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9836,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9819,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9965,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0245,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20261003_ATL@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261003 | 20261003_ATL@LAD | home | Tarik Skubal | Tarik Skubal | True | 6.1 | 6.0 | -1 | 1 | 1 | 0 | 5/2 | 1/2 | 7/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.722689075630252,
"WHIP": 0.9642857142857143,
"IP": 158.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.103,
"recent_avg_IP": 6.4,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9352,
"strikeout_factor": 1.0823,
"walk_factor": 0.904,
"homer_factor": 0.934,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 4.4,
"woba": 0.264,
"xwoba": 0.266,
"barrel_percent": 6.7,
"hard_hit_percent": 34.8,
"whiff_percent": 31.7
},
"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": 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": "669373",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 8.0,
"R": 8.0,
"H": 28.0,
"BB": 6.0,
"SO": 33.0,
"HR": 2.0,
"BF": 125.0,
"Pitches": 447.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 5.6,
"BB": 1.2,
"SO": 6.6,
"HR": 0.4,
"BF": 25.0,
"Pitches": 89.4
},
"rates": {
"ERA": 2.25,
"WHIP": 1.0625,
"ER_per_IP": 0.25,
"H_per_IP": 0.875,
"BB_per_IP": 0.1875,
"SO_per_IP": 1.03125,
"HR_per_IP": 0.0625
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 18.0,
"R": 19.0,
"H": 52.0,
"BB": 13.0,
"SO": 70.0,
"HR": 4.0,
"BF": 246.0,
"Pitches": 925.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.9,
"H": 5.2,
"BB": 1.3,
"SO": 7.0,
"HR": 0.4,
"BF": 24.6,
"Pitches": 92.5
},
"rates": {
"ERA": 2.6129,
"WHIP": 1.0484,
"ER_per_IP": 0.29032,
"H_per_IP": 0.83871,
"BB_per_IP": 0.20968,
"SO_per_IP": 1.12903,
"HR_per_IP": 0.06452
}
},
"season": {
"games": 26,
"totals": {
"IP": 158.2,
"ER": 48.0,
"R": 52.0,
"H": 126.0,
"BB": 27.0,
"SO": 186.0,
"HR": 14.0,
"BF": 620.0,
"Pitches": 2356.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8462,
"R": 2.0,
"H": 4.8462,
"BB": 1.0385,
"SO": 7.1538,
"HR": 0.5385,
"BF": 23.8462,
"Pitches": 90.6154
},
"rates": {
"ERA": 2.7227,
"WHIP": 0.9643,
"ER_per_IP": 0.30252,
"H_per_IP": 0.79412,
"BB_per_IP": 0.17017,
"SO_per_IP": 1.17227,
"HR_per_IP": 0.08824
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.964,
"predicted_H": 5.451,
"predicted_BB": 1.394,
"predicted_SO": 6.703,
"predicted_HR": 0.509,
"predicted_ERA": 2.8164,
"predicted_WHIP": 1.0904
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.964,
"final": 1.5609,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.451,
"final": 5.2624,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.394,
"final": 1.2292,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.703,
"final": 5.9909,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.509,
"final": 0.2962,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8164,
"final": 2.8164,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0904,
"final": 1.0904,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 18,
"H": 52,
"BB": 13,
"SO": 70,
"HR": 4,
"ERA": 2.6129032258064515,
"WHIP": 1.0483870967741935,
"K9": 10.161290322580646,
"HR9": 0.5806451612903226,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.7813918454232848,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669373",
"player_name": "Tarik Skubal",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.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": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"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.0195,
"defense_index": 1.1626,
"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.2008,
"offense_edge": 0.1006,
"opponent_offense_edge": 0.0195,
"defense_strength": 0.213,
"opponent_defense_weakness": -0.1626,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9718,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669373",
"profile": {
"available": true,
"pitcher_id": "669373",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 569.0,
"k_percent": 30.0,
"bb_percent": 4.4,
"woba": 0.264,
"xwoba": 0.266,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 34.8,
"avg_best_speed": 75.3556,
"avg_hyper_speed": 93.4848,
"whiff_percent": 31.7,
"swing_percent": 53.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.851,
"command_and_miss": 1.0729,
"regression_edge": -0.0571,
"xwoba_edge": 1.3143,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.4429,
"whiff_edge": 0.9286,
"bb_edge": 1.2,
"pitch_design_score": 0.155
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669373",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"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.6315,
"release_spin_rate": 2173.3743,
"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.155,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1069,
"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.7622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9352,
"strikeout_factor": 1.0823,
"walk_factor": 0.904,
"homer_factor": 0.934,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669373",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9352,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9352,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.904,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.934,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0823,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 111,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20261003_ATL@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261003 | 20261003_CHW@CLE | away | Hagen Smith | Hagen Smith | True | 5.0 | 2.2 | -7 | 0 | 0 | 0 | 2/0 | 2/3 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 0.8709677419354839,
"WHIP": 0.9032258064516129,
"IP": 31.0,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 2.5,
"recent_avg_IP": 2.5,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4803,
"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": 60,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 31.0,
"season_ERA": 0.871,
"season_WHIP": 0.903,
"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": 6.389,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.561,
"prior_weight": 0.439
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696146",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.1,
"ER": 1.0,
"R": 1.0,
"H": 4.0,
"BB": 4.0,
"SO": 8.0,
"HR": 0.0,
"BF": 30.0,
"Pitches": 127.0
},
"per_game": {
"IP": 1.1,
"ER": 0.2,
"R": 0.2,
"H": 0.8,
"BB": 0.8,
"SO": 1.6,
"HR": 0.0,
"BF": 6.0,
"Pitches": 25.4
},
"rates": {
"ERA": 1.2273,
"WHIP": 1.0909,
"ER_per_IP": 0.13636,
"H_per_IP": 0.54545,
"BB_per_IP": 0.54545,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 18.0,
"ER": 3.0,
"R": 3.0,
"H": 8.0,
"BB": 6.0,
"SO": 23.0,
"HR": 0.0,
"BF": 68.0,
"Pitches": 272.0
},
"per_game": {
"IP": 1.2,
"ER": 0.3,
"R": 0.3,
"H": 0.8,
"BB": 0.6,
"SO": 2.3,
"HR": 0.0,
"BF": 6.8,
"Pitches": 27.2
},
"rates": {
"ERA": 1.5,
"WHIP": 0.7778,
"ER_per_IP": 0.16667,
"H_per_IP": 0.44444,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.27778,
"HR_per_IP": 0.0
}
},
"season": {
"games": 18,
"totals": {
"IP": 31.0,
"ER": 3.0,
"R": 3.0,
"H": 12.0,
"BB": 16.0,
"SO": 42.0,
"HR": 0.0,
"BF": 120.0,
"Pitches": 503.0
},
"per_game": {
"IP": 1.2,
"ER": 0.1667,
"R": 0.1667,
"H": 0.6667,
"BB": 0.8889,
"SO": 2.3333,
"HR": 0.0,
"BF": 6.6667,
"Pitches": 27.9444
},
"rates": {
"ERA": 0.871,
"WHIP": 0.9032,
"ER_per_IP": 0.09677,
"H_per_IP": 0.3871,
"BB_per_IP": 0.51613,
"SO_per_IP": 1.35484,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 0.922,
"predicted_H": 2.134,
"predicted_BB": 1.302,
"predicted_SO": 3.314,
"predicted_HR": 0.197,
"predicted_ERA": 2.7256,
"predicted_WHIP": 1.1281
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5355,
"form_weight": 0.4645,
"form_reliability": 0.561,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.389,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.561,
"prior_weight": 0.439
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.922,
"final": 0.4283,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 2.134,
"final": 2.0622,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.302,
"final": 1.6758,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.314,
"final": 4.2168,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.197,
"final": 0.0915,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7256,
"final": 2.7256,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1281,
"final": 1.1281,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 18.0,
"ER": 3,
"H": 8,
"BB": 6,
"SO": 23,
"HR": 0,
"ERA": 1.5,
"WHIP": 0.7777777777777778,
"K9": 11.5,
"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-29T00:00:00"
},
"recent_form_boost": 0.7886905883945785,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.389,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.561,
"prior_weight": 0.439
}
},
{
"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": 0,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"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": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0655,
"defense_index": 1.0115,
"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": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0063,
"offense_edge": 0.0655,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.0115,
"opponent_defense_weakness": -0.0919,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9881,
"strikeout": 1.0053
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4885,
"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": 30,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 30,
"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": 30,
"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.4803,
"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": 3.0,
"factor": 0.9816,
"adjusted": 3
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0215,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9645,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0303,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 77,
"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": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20261003_CHW@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261003 | 20261003_CHW@CLE | home | Parker Messick | Parker Messick | True | 6.0 | 4.1 | -5 | 3 | 2 | -1 | 5/4 | 1/2 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.559928443649374,
"WHIP": 1.0626118067978532,
"IP": 186.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.823,
"recent_avg_IP": 5.067,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5409,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0229,
"walk_factor": 0.948,
"homer_factor": 0.9086,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 6.6,
"woba": 0.274,
"xwoba": 0.275,
"barrel_percent": 5.0,
"hard_hit_percent": 34.3,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 186.1,
"season_ERA": 2.56,
"season_WHIP": 1.063,
"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": 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": "800048",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 9.0,
"R": 9.0,
"H": 28.0,
"BB": 6.0,
"SO": 32.0,
"HR": 3.0,
"BF": 110.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 5.6,
"BB": 1.2,
"SO": 6.4,
"HR": 0.6,
"BF": 22.0,
"Pitches": 88.8
},
"rates": {
"ERA": 3.1974,
"WHIP": 1.3421,
"ER_per_IP": 0.35526,
"H_per_IP": 1.10526,
"BB_per_IP": 0.23684,
"SO_per_IP": 1.26316,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 16.0,
"R": 16.0,
"H": 49.0,
"BB": 12.0,
"SO": 65.0,
"HR": 6.0,
"BF": 231.0,
"Pitches": 940.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 4.9,
"BB": 1.2,
"SO": 6.5,
"HR": 0.6,
"BF": 23.1,
"Pitches": 94.0
},
"rates": {
"ERA": 2.5412,
"WHIP": 1.0765,
"ER_per_IP": 0.28235,
"H_per_IP": 0.86471,
"BB_per_IP": 0.21176,
"SO_per_IP": 1.14706,
"HR_per_IP": 0.10588
}
},
"season": {
"games": 32,
"totals": {
"IP": 186.1,
"ER": 53.0,
"R": 57.0,
"H": 149.0,
"BB": 49.0,
"SO": 193.0,
"HR": 17.0,
"BF": 747.0,
"Pitches": 2948.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6562,
"R": 1.7812,
"H": 4.6562,
"BB": 1.5312,
"SO": 6.0312,
"HR": 0.5312,
"BF": 23.3438,
"Pitches": 92.125
},
"rates": {
"ERA": 2.5599,
"WHIP": 1.0626,
"ER_per_IP": 0.28444,
"H_per_IP": 0.79964,
"BB_per_IP": 0.26297,
"SO_per_IP": 1.03578,
"HR_per_IP": 0.09123
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.865,
"predicted_H": 5.252,
"predicted_BB": 1.38,
"predicted_SO": 6.238,
"predicted_HR": 0.621,
"predicted_ERA": 3.0793,
"predicted_WHIP": 1.2162
}
},
"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": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.865,
"final": 2.327,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.252,
"final": 5.1494,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.38,
"final": 1.2253,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.238,
"final": 5.327,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.621,
"final": 0.3682,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0793,
"final": 3.0793,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2162,
"final": 1.2162,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 16,
"H": 49,
"BB": 12,
"SO": 65,
"HR": 6,
"ERA": 2.5411764705882356,
"WHIP": 1.076470588235294,
"K9": 10.323529411764707,
"HR9": 0.9529411764705883,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-27T00:00:00"
},
"recent_form_boost": 0.7740246727477629,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.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": 6.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"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.0655,
"defense_index": 1.0115,
"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.0063,
"offense_edge": -0.0691,
"opponent_offense_edge": 0.0655,
"defense_strength": 0.0919,
"opponent_defense_weakness": -0.0115,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 1.001,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 705.0,
"k_percent": 25.8,
"bb_percent": 6.6,
"woba": 0.274,
"xwoba": 0.275,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 34.3,
"avg_best_speed": 76.3542,
"avg_hyper_speed": 93.484,
"whiff_percent": 25.5,
"swing_percent": 48.6
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7912,
"command_and_miss": 0.3829,
"regression_edge": -0.0286,
"xwoba_edge": 1.0571,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.5143,
"whiff_edge": 0.0429,
"bb_edge": 0.65,
"pitch_design_score": 0.0142
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"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": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"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.1175,
"release_spin_rate": 2107.0954,
"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.0142,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1013,
"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.5409,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0229,
"walk_factor": 0.948,
"homer_factor": 0.9086,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800048",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.954,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9086,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0229,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"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/20261003_CHW@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261003 | 20261003_NYY@TB | away | Gerrit Cole | Gerrit Cole | True | 5.2 | 5.0 | -2 | 3 | 1 | -2 | 7/5 | 3/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6141732283464565,
"WHIP": 1.1023622047244095,
"IP": 127.0,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.773,
"recent_avg_IP": 5.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0289,
"sample_weight": 1.0,
"run_prevention_factor": 0.9975,
"strikeout_factor": 0.9954,
"walk_factor": 0.912,
"homer_factor": 1.06,
"regression_flag": "neutral",
"k_percent": 25.2,
"bb_percent": 4.8,
"woba": 0.302,
"xwoba": 0.3,
"barrel_percent": 9.0,
"hard_hit_percent": 44.6,
"whiff_percent": 21.3
},
"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": 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": "543037",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 16.0,
"R": 16.0,
"H": 30.0,
"BB": 4.0,
"SO": 26.0,
"HR": 9.0,
"BF": 117.0,
"Pitches": 446.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.2,
"H": 6.0,
"BB": 0.8,
"SO": 5.2,
"HR": 1.8,
"BF": 23.4,
"Pitches": 89.2
},
"rates": {
"ERA": 5.0824,
"WHIP": 1.2,
"ER_per_IP": 0.56471,
"H_per_IP": 1.05882,
"BB_per_IP": 0.14118,
"SO_per_IP": 0.91765,
"HR_per_IP": 0.31765
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 24.0,
"R": 25.0,
"H": 55.0,
"BB": 11.0,
"SO": 58.0,
"HR": 11.0,
"BF": 240.0,
"Pitches": 886.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.5,
"H": 5.5,
"BB": 1.1,
"SO": 5.8,
"HR": 1.1,
"BF": 24.0,
"Pitches": 88.6
},
"rates": {
"ERA": 3.661,
"WHIP": 1.1186,
"ER_per_IP": 0.40678,
"H_per_IP": 0.9322,
"BB_per_IP": 0.18644,
"SO_per_IP": 0.98305,
"HR_per_IP": 0.18644
}
},
"season": {
"games": 22,
"totals": {
"IP": 127.0,
"ER": 51.0,
"R": 52.0,
"H": 115.0,
"BB": 25.0,
"SO": 131.0,
"HR": 22.0,
"BF": 519.0,
"Pitches": 1951.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3182,
"R": 2.3636,
"H": 5.2273,
"BB": 1.1364,
"SO": 5.9545,
"HR": 1.0,
"BF": 23.5909,
"Pitches": 88.6818
},
"rates": {
"ERA": 3.6142,
"WHIP": 1.1024,
"ER_per_IP": 0.40157,
"H_per_IP": 0.90551,
"BB_per_IP": 0.19685,
"SO_per_IP": 1.0315,
"HR_per_IP": 0.17323
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.785,
"predicted_H": 5.669,
"predicted_BB": 1.194,
"predicted_SO": 5.518,
"predicted_HR": 1.298,
"predicted_ERA": 4.3502,
"predicted_WHIP": 1.1912
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.785,
"final": 3.3053,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.669,
"final": 6.6672,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.194,
"final": 1.9674,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.518,
"final": 5.2962,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.298,
"final": 0.7421,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3502,
"final": 4.3502,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1912,
"final": 1.1912,
"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": 24,
"H": 55,
"BB": 11,
"SO": 58,
"HR": 11,
"ERA": 3.661016949152543,
"WHIP": 1.1186440677966103,
"K9": 8.847457627118645,
"HR9": 1.6779661016949154,
"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-23T00:00:00"
},
"recent_form_boost": 0.9010610635752805,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"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": 8,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0221,
"defense_index": 1.2031,
"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.1709
},
"opponent": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"edges": {
"quality_edge": 0.0167,
"offense_edge": 0.0221,
"opponent_offense_edge": 0.0116,
"defense_strength": 0.2031,
"opponent_defense_weakness": -0.1193,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9807,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 470.0,
"k_percent": 25.2,
"bb_percent": 4.8,
"woba": 0.302,
"xwoba": 0.3,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 44.6,
"avg_best_speed": 81.4104,
"avg_hyper_speed": 94.5024,
"whiff_percent": 21.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.08,
"command_and_miss": 0.2243,
"regression_edge": 0.0571,
"xwoba_edge": 0.3429,
"barrel_edge": -0.4,
"hard_hit_edge": -0.9571,
"whiff_edge": -0.5571,
"bb_edge": 1.1,
"pitch_design_score": 0.1217
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"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.0375,
"release_spin_rate": 2372.665,
"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.1217,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8693,
"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.0289,
"sample_weight": 1.0,
"run_prevention_factor": 0.9975,
"strikeout_factor": 0.9954,
"walk_factor": 0.912,
"homer_factor": 1.06,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543037",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9975,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9975,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.912,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.06,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9954,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20261003_NYY@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261003 | 20261003_NYY@TB | home | Drew Rasmussen | Drew Rasmussen | True | 6.0 | 8.0 | 6 | 2 | 0 | -2 | 1/1 | 3/2 | 5/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.6686046511627906,
"WHIP": 0.9127906976744186,
"IP": 172.0,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.733,
"recent_avg_IP": 6.333,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5597,
"sample_weight": 1.0,
"run_prevention_factor": 0.9524,
"strikeout_factor": 1.0217,
"walk_factor": 0.912,
"homer_factor": 0.9183,
"regression_flag": "neutral",
"k_percent": 26.0,
"bb_percent": 4.8,
"woba": 0.243,
"xwoba": 0.271,
"barrel_percent": 5.9,
"hard_hit_percent": 33.8,
"whiff_percent": 25.1
},
"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": "656876",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 5.0,
"R": 5.0,
"H": 20.0,
"BB": 7.0,
"SO": 31.0,
"HR": 1.0,
"BF": 119.0,
"Pitches": 476.0
},
"per_game": {
"IP": 6.1,
"ER": 1.0,
"R": 1.0,
"H": 4.0,
"BB": 1.4,
"SO": 6.2,
"HR": 0.2,
"BF": 23.8,
"Pitches": 95.2
},
"rates": {
"ERA": 1.4211,
"WHIP": 0.8526,
"ER_per_IP": 0.15789,
"H_per_IP": 0.63158,
"BB_per_IP": 0.22105,
"SO_per_IP": 0.97895,
"HR_per_IP": 0.03158
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.2,
"ER": 13.0,
"R": 13.0,
"H": 40.0,
"BB": 13.0,
"SO": 62.0,
"HR": 2.0,
"BF": 230.0,
"Pitches": 936.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.3,
"H": 4.0,
"BB": 1.3,
"SO": 6.2,
"HR": 0.2,
"BF": 23.0,
"Pitches": 93.6
},
"rates": {
"ERA": 1.9286,
"WHIP": 0.8736,
"ER_per_IP": 0.21429,
"H_per_IP": 0.65934,
"BB_per_IP": 0.21429,
"SO_per_IP": 1.02198,
"HR_per_IP": 0.03297
}
},
"season": {
"games": 30,
"totals": {
"IP": 172.0,
"ER": 51.0,
"R": 53.0,
"H": 125.0,
"BB": 32.0,
"SO": 174.0,
"HR": 14.0,
"BF": 669.0,
"Pitches": 2660.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7,
"R": 1.7667,
"H": 4.1667,
"BB": 1.0667,
"SO": 5.8,
"HR": 0.4667,
"BF": 22.3,
"Pitches": 88.6667
},
"rates": {
"ERA": 2.6686,
"WHIP": 0.9128,
"ER_per_IP": 0.29651,
"H_per_IP": 0.72674,
"BB_per_IP": 0.18605,
"SO_per_IP": 1.01163,
"HR_per_IP": 0.0814
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.513,
"predicted_H": 4.29,
"predicted_BB": 1.431,
"predicted_SO": 6.016,
"predicted_HR": 0.347,
"predicted_ERA": 2.2428,
"predicted_WHIP": 0.9422
}
},
"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.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.513,
"final": 1.7129,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.29,
"final": 2.9399,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.431,
"final": 2.0749,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.016,
"final": 5.1887,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.347,
"final": 0.2046,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2428,
"final": 2.2428,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9422,
"final": 0.9422,
"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": 13,
"H": 40,
"BB": 13,
"SO": 62,
"HR": 2,
"ERA": 1.9285714285714284,
"WHIP": 0.8736263736263735,
"K9": 9.197802197802197,
"HR9": 0.2967032967032967,
"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-22T00:00:00"
},
"recent_form_boost": 0.7000355001556491,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 4.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.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656876",
"player_name": "Drew Rasmussen",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"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.0221,
"defense_index": 1.2031,
"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.1709
},
"edges": {
"quality_edge": -0.0167,
"offense_edge": 0.0116,
"opponent_offense_edge": 0.0221,
"defense_strength": 0.1193,
"opponent_defense_weakness": -0.2031,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9924,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656876",
"profile": {
"available": true,
"pitcher_id": "656876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 645.0,
"k_percent": 26.0,
"bb_percent": 4.8,
"woba": 0.243,
"xwoba": 0.271,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 33.8,
"avg_best_speed": 77.4285,
"avg_hyper_speed": 93.597,
"whiff_percent": 25.1,
"swing_percent": 50.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.906,
"command_and_miss": 0.4657,
"regression_edge": -0.8,
"xwoba_edge": 1.1714,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.0143,
"bb_edge": 1.1,
"pitch_design_score": 0.1407
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"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.3759,
"release_spin_rate": 2355.1144,
"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.1407,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0047,
"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.5597,
"sample_weight": 1.0,
"run_prevention_factor": 0.9524,
"strikeout_factor": 1.0217,
"walk_factor": 0.912,
"homer_factor": 0.9183,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "656876",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9524,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9524,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.912,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9183,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0217,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20261003_NYY@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261003 | 20261003_SD@MIL | away | Robbie Ray | Robbie Ray | True | 5.0 | 2.2 | -7 | 3 | 2 | -1 | 6/4 | 1/2 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.585513078470825,
"WHIP": 1.352112676056338,
"IP": 165.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.311,
"recent_avg_IP": 4.533,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3171,
"sample_weight": 1.0,
"run_prevention_factor": 1.027,
"strikeout_factor": 0.984,
"walk_factor": 1.056,
"homer_factor": 1.0311,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 12.0,
"woba": 0.315,
"xwoba": 0.335,
"barrel_percent": 8.0,
"hard_hit_percent": 37.4,
"whiff_percent": 24.6
},
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592662",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 15.0,
"R": 15.0,
"H": 22.0,
"BB": 14.0,
"SO": 18.0,
"HR": 3.0,
"BF": 102.0,
"Pitches": 427.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.4,
"BB": 2.8,
"SO": 3.6,
"HR": 0.6,
"BF": 20.4,
"Pitches": 85.4
},
"rates": {
"ERA": 5.9559,
"WHIP": 1.5882,
"ER_per_IP": 0.66176,
"H_per_IP": 0.97059,
"BB_per_IP": 0.61765,
"SO_per_IP": 0.79412,
"HR_per_IP": 0.13235
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 25.0,
"R": 25.0,
"H": 43.0,
"BB": 28.0,
"SO": 39.0,
"HR": 7.0,
"BF": 212.0,
"Pitches": 879.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.5,
"H": 4.3,
"BB": 2.8,
"SO": 3.9,
"HR": 0.7,
"BF": 21.2,
"Pitches": 87.9
},
"rates": {
"ERA": 4.5918,
"WHIP": 1.449,
"ER_per_IP": 0.5102,
"H_per_IP": 0.87755,
"BB_per_IP": 0.57143,
"SO_per_IP": 0.79592,
"HR_per_IP": 0.14286
}
},
"season": {
"games": 31,
"totals": {
"IP": 165.2,
"ER": 66.0,
"R": 74.0,
"H": 140.0,
"BB": 84.0,
"SO": 140.0,
"HR": 22.0,
"BF": 702.0,
"Pitches": 2854.0
},
"per_game": {
"IP": 5.1,
"ER": 2.129,
"R": 2.3871,
"H": 4.5161,
"BB": 2.7097,
"SO": 4.5161,
"HR": 0.7097,
"BF": 22.6452,
"Pitches": 92.0645
},
"rates": {
"ERA": 3.5855,
"WHIP": 1.3521,
"ER_per_IP": 0.39839,
"H_per_IP": 0.84507,
"BB_per_IP": 0.50704,
"SO_per_IP": 0.84507,
"HR_per_IP": 0.1328
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.71,
"predicted_H": 4.548,
"predicted_BB": 2.718,
"predicted_SO": 4.055,
"predicted_HR": 0.679,
"predicted_ERA": 4.9495,
"predicted_WHIP": 1.4744
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.71,
"final": 2.8285,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.548,
"final": 5.1414,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.718,
"final": 2.0159,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.055,
"final": 4.0325,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.679,
"final": 0.8102,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9495,
"final": 4.9495,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4744,
"final": 1.4744,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.0,
"ER": 25,
"H": 43,
"BB": 28,
"SO": 39,
"HR": 7,
"ERA": 4.591836734693878,
"WHIP": 1.4489795918367347,
"K9": 7.163265306122449,
"HR9": 1.2857142857142858,
"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-23T00:00:00"
},
"recent_form_boost": 1.0140366775496839,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592662",
"player_name": "Robbie Ray",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 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.992,
"defense_index": 1.0687,
"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": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"edges": {
"quality_edge": -0.1938,
"offense_edge": -0.008,
"opponent_offense_edge": 0.1432,
"defense_strength": 0.0687,
"opponent_defense_weakness": -0.1777,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9886,
"run_prevention": 1.0257,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592662",
"profile": {
"available": true,
"pitcher_id": "592662",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 657.0,
"k_percent": 19.9,
"bb_percent": 12.0,
"woba": 0.315,
"xwoba": 0.335,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 37.4,
"avg_best_speed": 78.7395,
"avg_hyper_speed": 93.9885,
"whiff_percent": 24.6,
"swing_percent": 46.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3086,
"command_and_miss": -0.3114,
"regression_edge": -0.5714,
"xwoba_edge": -0.6571,
"barrel_edge": -0.1778,
"hard_hit_edge": 0.0714,
"whiff_edge": -0.0857,
"bb_edge": -0.7,
"pitch_design_score": -0.0765
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"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.4979,
"release_spin_rate": 2136.9723,
"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.0765,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5465,
"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.3171,
"sample_weight": 1.0,
"run_prevention_factor": 1.027,
"strikeout_factor": 0.984,
"walk_factor": 1.056,
"homer_factor": 1.0311,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592662",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.027,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.027,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.056,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0311,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.984,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20261003_SD@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261003 | 20261003_SD@MIL | home | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 4.0 | -6 | 1 | 2 | 1 | 4/4 | 4/1 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.803435114503817,
"WHIP": 0.8015267175572519,
"IP": 174.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.822,
"recent_avg_IP": 4.733,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.3589,
"sample_weight": 1.0,
"run_prevention_factor": 0.8845,
"strikeout_factor": 1.1594,
"walk_factor": 0.948,
"homer_factor": 0.836,
"regression_flag": "neutral",
"k_percent": 37.9,
"bb_percent": 6.6,
"woba": 0.216,
"xwoba": 0.226,
"barrel_percent": 3.6,
"hard_hit_percent": 33.3,
"whiff_percent": 37.3
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 174.2,
"season_ERA": 1.803,
"season_WHIP": 0.802,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694819",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 6.0,
"R": 6.0,
"H": 17.0,
"BB": 9.0,
"SO": 30.0,
"HR": 1.0,
"BF": 94.0,
"Pitches": 379.0
},
"per_game": {
"IP": 4.2,
"ER": 1.2,
"R": 1.2,
"H": 3.4,
"BB": 1.8,
"SO": 6.0,
"HR": 0.2,
"BF": 18.8,
"Pitches": 75.8
},
"rates": {
"ERA": 2.2817,
"WHIP": 1.0986,
"ER_per_IP": 0.25352,
"H_per_IP": 0.71831,
"BB_per_IP": 0.38028,
"SO_per_IP": 1.26761,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 14.0,
"R": 14.0,
"H": 34.0,
"BB": 16.0,
"SO": 67.0,
"HR": 4.0,
"BF": 209.0,
"Pitches": 839.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.4,
"BB": 1.6,
"SO": 6.7,
"HR": 0.4,
"BF": 20.9,
"Pitches": 83.9
},
"rates": {
"ERA": 2.3049,
"WHIP": 0.9146,
"ER_per_IP": 0.2561,
"H_per_IP": 0.62195,
"BB_per_IP": 0.29268,
"SO_per_IP": 1.22561,
"HR_per_IP": 0.07317
}
},
"season": {
"games": 30,
"totals": {
"IP": 174.2,
"ER": 35.0,
"R": 43.0,
"H": 96.0,
"BB": 44.0,
"SO": 252.0,
"HR": 14.0,
"BF": 665.0,
"Pitches": 2647.0
},
"per_game": {
"IP": 5.2,
"ER": 1.1667,
"R": 1.4333,
"H": 3.2,
"BB": 1.4667,
"SO": 8.4,
"HR": 0.4667,
"BF": 22.1667,
"Pitches": 88.2333
},
"rates": {
"ERA": 1.8034,
"WHIP": 0.8015,
"ER_per_IP": 0.20038,
"H_per_IP": 0.54962,
"BB_per_IP": 0.25191,
"SO_per_IP": 1.44275,
"HR_per_IP": 0.08015
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.475,
"predicted_H": 3.652,
"predicted_BB": 1.735,
"predicted_SO": 6.469,
"predicted_HR": 0.382,
"predicted_ERA": 2.5393,
"predicted_WHIP": 1.0303
}
},
"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.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.475,
"final": 1.2801,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.652,
"final": 3.7948,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.735,
"final": 2.6645,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.469,
"final": 5.4558,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.382,
"final": 0.2252,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5393,
"final": 2.5393,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0303,
"final": 1.0303,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 14,
"H": 34,
"BB": 16,
"SO": 67,
"HR": 4,
"ERA": 2.304878048780488,
"WHIP": 0.9146341463414634,
"K9": 11.03048780487805,
"HR9": 0.6585365853658537,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-27T00:00:00"
},
"recent_form_boost": 0.7433951892470456,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 4.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.0,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"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.992,
"defense_index": 1.0687,
"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.1938,
"offense_edge": 0.1432,
"opponent_offense_edge": -0.008,
"defense_strength": 0.1777,
"opponent_defense_weakness": -0.0687,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0134,
"run_prevention": 0.9713,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 37.9,
"bb_percent": 6.6,
"woba": 0.216,
"xwoba": 0.226,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 33.3,
"avg_best_speed": 76.4985,
"avg_hyper_speed": 92.9527,
"whiff_percent": 37.3,
"swing_percent": 51.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6247,
"command_and_miss": 1.7507,
"regression_edge": -0.2857,
"xwoba_edge": 2.4571,
"barrel_edge": 0.8,
"hard_hit_edge": 0.6571,
"whiff_edge": 1.7286,
"bb_edge": 0.65,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.5351,
"release_spin_rate": 2568.6403,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.3589,
"sample_weight": 1.0,
"run_prevention_factor": 0.8845,
"strikeout_factor": 1.1594,
"walk_factor": 0.948,
"homer_factor": 0.836,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694819",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8845,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8845,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.836,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.1594,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 116,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20261003_SD@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261004 | 20261004_ATL@LAD | away | Ray Kerr | Ray Kerr | True | 5.0 | 2.2 | -7 | 1 | 0 | -1 | 2/2 | 0/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.2461538461538462,
"WHIP": 0.6,
"IP": 21.2,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 3.167,
"recent_avg_IP": 3.167,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1441,
"sample_weight": 0.45,
"run_prevention_factor": 0.9878,
"strikeout_factor": 0.9815,
"walk_factor": 0.9442,
"homer_factor": 0.9609,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.7,
"bb_percent": 3.0,
"woba": 0.209,
"xwoba": 0.281,
"barrel_percent": 5.9,
"hard_hit_percent": 31.4,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 35,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.468,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4719,
"prior_weight": 0.5281
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678061",
"report_date": "20261004",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 11.2,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 2.0,
"SO": 7.0,
"HR": 1.0,
"BF": 40.0,
"Pitches": 139.0
},
"per_game": {
"IP": 2.1,
"ER": 0.2,
"R": 0.2,
"H": 1.2,
"BB": 0.4,
"SO": 1.4,
"HR": 0.2,
"BF": 8.0,
"Pitches": 27.8
},
"rates": {
"ERA": 0.7714,
"WHIP": 0.6857,
"ER_per_IP": 0.08571,
"H_per_IP": 0.51429,
"BB_per_IP": 0.17143,
"SO_per_IP": 0.6,
"HR_per_IP": 0.08571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 21.2,
"ER": 3.0,
"R": 3.0,
"H": 10.0,
"BB": 3.0,
"SO": 13.0,
"HR": 2.0,
"BF": 78.0,
"Pitches": 259.0
},
"per_game": {
"IP": 2.0,
"ER": 0.3,
"R": 0.3,
"H": 1.0,
"BB": 0.3,
"SO": 1.3,
"HR": 0.2,
"BF": 7.8,
"Pitches": 25.9
},
"rates": {
"ERA": 1.2462,
"WHIP": 0.6,
"ER_per_IP": 0.13846,
"H_per_IP": 0.46154,
"BB_per_IP": 0.13846,
"SO_per_IP": 0.6,
"HR_per_IP": 0.09231
}
},
"season": {
"games": 10,
"totals": {
"IP": 21.2,
"ER": 3.0,
"R": 3.0,
"H": 10.0,
"BB": 3.0,
"SO": 13.0,
"HR": 2.0,
"BF": 78.0,
"Pitches": 259.0
},
"per_game": {
"IP": 2.0,
"ER": 0.3,
"R": 0.3,
"H": 1.0,
"BB": 0.3,
"SO": 1.3,
"HR": 0.2,
"BF": 7.8,
"Pitches": 25.9
},
"rates": {
"ERA": 1.2462,
"WHIP": 0.6,
"ER_per_IP": 0.13846,
"H_per_IP": 0.46154,
"BB_per_IP": 0.13846,
"SO_per_IP": 0.6,
"HR_per_IP": 0.09231
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.069,
"predicted_H": 2.496,
"predicted_BB": 0.912,
"predicted_SO": 2.576,
"predicted_HR": 0.398,
"predicted_ERA": 2.8969,
"predicted_WHIP": 1.0261
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5731,
"form_weight": 0.4269,
"form_reliability": 0.4719,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.468,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4719,
"prior_weight": 0.5281
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.069,
"final": 1.0295,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 2.496,
"final": 2.2117,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.912,
"final": 0.3893,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.576,
"final": 3.3921,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.398,
"final": 0.743,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8969,
"final": 2.8969,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0261,
"final": 1.0261,
"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": 21.2,
"ER": 3,
"H": 10,
"BB": 3,
"SO": 13,
"HR": 2,
"ERA": 1.2461538461538462,
"WHIP": 0.6,
"K9": 5.3999999999999995,
"HR9": 0.8307692307692307,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-01T00:00:00"
},
"recent_form_boost": 0.721442130050401,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.468,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4719,
"prior_weight": 0.5281
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678061",
"player_name": "Ray Kerr",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0198,
"defense_index": 1.1622,
"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.1559
},
"opponent": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1009,
"defense_index": 1.2126,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"edges": {
"quality_edge": -0.2007,
"offense_edge": 0.0198,
"opponent_offense_edge": 0.1009,
"defense_strength": 0.1622,
"opponent_defense_weakness": -0.2126,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.01,
"strikeout": 0.9859
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678061",
"profile": {
"available": true,
"pitcher_id": "678061",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 50.0,
"k_percent": 16.7,
"bb_percent": 3.0,
"woba": 0.209,
"xwoba": 0.281,
"sweet_spot_percent": 27.5,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 31.4,
"avg_best_speed": 77.8999,
"avg_hyper_speed": 93.2085,
"whiff_percent": 23.4,
"swing_percent": 52.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9908,
"command_and_miss": -0.1271,
"regression_edge": -2.0,
"xwoba_edge": 0.8857,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.9286,
"whiff_edge": -0.2571,
"bb_edge": 1.55,
"pitch_design_score": -0.0191
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678061",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 26,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 26,
"pitch_usage": 0.0,
"release_speed": 89.52283282543786,
"release_spin_rate": 2148.8918500733625,
"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": 26,
"pitch_usage": 0.0,
"release_speed": 89.52283282543786,
"release_spin_rate": 2148.8918500733625,
"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.5228,
"release_spin_rate": 2148.8919,
"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.0191,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1365,
"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.1441,
"sample_weight": 0.45,
"run_prevention_factor": 0.9878,
"strikeout_factor": 0.9815,
"walk_factor": 0.9442,
"homer_factor": 0.9609,
"woba_minus_xwoba": -0.072,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "678061",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9945,
"adjusted": 0
},
"predicted_H": {
"original": 2.0,
"factor": 0.9945,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9749,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9824,
"adjusted": 0
},
"predicted_SO": {
"original": 1.0,
"factor": 0.9917,
"adjusted": 1
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 77,
"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 -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20261004_ATL@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261004 | 20261004_ATL@LAD | home | Blake Snell | Blake Snell | True | 5.1 | 3.2 | -5 | 1 | 1 | 0 | 2/3 | 3/5 | 9/5 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 1.8984375,
"WHIP": 1.1015625,
"IP": 42.2,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 4.741,
"recent_avg_IP": 4.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8478,
"sample_weight": 0.624,
"run_prevention_factor": 0.9279,
"strikeout_factor": 1.0688,
"walk_factor": 1.0,
"homer_factor": 0.835,
"regression_flag": "neutral",
"k_percent": 31.8,
"bb_percent": 9.2,
"woba": 0.245,
"xwoba": 0.228,
"barrel_percent": 2.0,
"hard_hit_percent": 15.8,
"whiff_percent": 34.8
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 42.2,
"season_ERA": 1.898,
"season_WHIP": 1.102,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605483",
"report_date": "20261004",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 3.0,
"R": 3.0,
"H": 18.0,
"BB": 7.0,
"SO": 29.0,
"HR": 0.0,
"BF": 86.0,
"Pitches": 396.0
},
"per_game": {
"IP": 4.1,
"ER": 0.6,
"R": 0.6,
"H": 3.6,
"BB": 1.4,
"SO": 5.8,
"HR": 0.0,
"BF": 17.2,
"Pitches": 79.2
},
"rates": {
"ERA": 1.2462,
"WHIP": 1.1538,
"ER_per_IP": 0.13846,
"H_per_IP": 0.83077,
"BB_per_IP": 0.32308,
"SO_per_IP": 1.33846,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 42.2,
"ER": 9.0,
"R": 10.0,
"H": 31.0,
"BB": 16.0,
"SO": 55.0,
"HR": 0.0,
"BF": 173.0,
"Pitches": 741.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.1111,
"H": 3.4444,
"BB": 1.7778,
"SO": 6.1111,
"HR": 0.0,
"BF": 19.2222,
"Pitches": 82.3333
},
"rates": {
"ERA": 1.8984,
"WHIP": 1.1016,
"ER_per_IP": 0.21094,
"H_per_IP": 0.72656,
"BB_per_IP": 0.375,
"SO_per_IP": 1.28906,
"HR_per_IP": 0.0
}
},
"season": {
"games": 9,
"totals": {
"IP": 42.2,
"ER": 9.0,
"R": 10.0,
"H": 31.0,
"BB": 16.0,
"SO": 55.0,
"HR": 0.0,
"BF": 173.0,
"Pitches": 741.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.1111,
"H": 3.4444,
"BB": 1.7778,
"SO": 6.1111,
"HR": 0.0,
"BF": 19.2222,
"Pitches": 82.3333
},
"rates": {
"ERA": 1.8984,
"WHIP": 1.1016,
"ER_per_IP": 0.21094,
"H_per_IP": 0.72656,
"BB_per_IP": 0.375,
"SO_per_IP": 1.28906,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.418,
"predicted_H": 4.206,
"predicted_BB": 1.742,
"predicted_SO": 5.779,
"predicted_HR": 0.258,
"predicted_ERA": 2.6084,
"predicted_WHIP": 1.2159
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.418,
"final": 1.2086,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.206,
"final": 3.1011,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.742,
"final": 2.3721,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 5.779,
"final": 7.3923,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.258,
"final": 0.1288,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6084,
"final": 2.6084,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2159,
"final": 1.2159,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.2,
"ER": 9,
"H": 31,
"BB": 16,
"SO": 55,
"HR": 0,
"ERA": 1.8984374999999998,
"WHIP": 1.1015624999999998,
"K9": 11.601562499999998,
"HR9": 0.0,
"games_pitched": 9,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-09-26T00:00:00"
},
"recent_form_boost": 0.7022246654418993,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 9,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605483",
"player_name": "Blake Snell",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 5.1,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1009,
"defense_index": 1.2126,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"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.0198,
"defense_index": 1.1622,
"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.1559
},
"edges": {
"quality_edge": 0.2007,
"offense_edge": 0.1009,
"opponent_offense_edge": 0.0198,
"defense_strength": 0.2126,
"opponent_defense_weakness": -0.1622,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9719,
"strikeout": 1.0044
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605483",
"profile": {
"available": true,
"pitcher_id": "605483",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 156.0,
"k_percent": 31.8,
"bb_percent": 9.2,
"woba": 0.245,
"xwoba": 0.228,
"sweet_spot_percent": 28.7,
"barrel_batted_rate": 2.0,
"hard_hit_percent": 15.8,
"avg_best_speed": 71.9158,
"avg_hyper_speed": 91.063,
"whiff_percent": 34.8,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.8318,
"command_and_miss": 1.1036,
"regression_edge": 0.4857,
"xwoba_edge": 2.4,
"barrel_edge": 1.1556,
"hard_hit_edge": 2.5,
"whiff_edge": 1.3714,
"bb_edge": 0.0,
"pitch_design_score": -0.0332
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605483",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.27067101921558,
"release_spin_rate": 2341.8445698453625,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.27067101921558,
"release_spin_rate": 2341.8445698453625,
"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.2707,
"release_spin_rate": 2341.8446,
"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.0332,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2374,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.8478,
"sample_weight": 0.624,
"run_prevention_factor": 0.9279,
"strikeout_factor": 1.0688,
"walk_factor": 1.0,
"homer_factor": 0.835,
"woba_minus_xwoba": 0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605483",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.955,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.955,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.897,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0429,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20261004_ATL@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261004 | 20261004_SD@MIL | away | Michael King | Michael King | True | 6.0 | 5.0 | -3 | 2 | 1 | -1 | 6/3 | 0/0 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.09375,
"WHIP": 1.15625,
"IP": 192.0,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 5.818,
"recent_avg_IP": 6.0,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0884,
"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": 36,
"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": "650633",
"report_date": "20261004",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 10.0,
"R": 10.0,
"H": 23.0,
"BB": 10.0,
"SO": 26.0,
"HR": 2.0,
"BF": 121.0,
"Pitches": 474.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.6,
"BB": 2.0,
"SO": 5.2,
"HR": 0.4,
"BF": 24.2,
"Pitches": 94.8
},
"rates": {
"ERA": 3.0,
"WHIP": 1.1,
"ER_per_IP": 0.33333,
"H_per_IP": 0.76667,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.86667,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.2,
"ER": 16.0,
"R": 17.0,
"H": 47.0,
"BB": 19.0,
"SO": 53.0,
"HR": 6.0,
"BF": 245.0,
"Pitches": 944.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.7,
"H": 4.7,
"BB": 1.9,
"SO": 5.3,
"HR": 0.6,
"BF": 24.5,
"Pitches": 94.4
},
"rates": {
"ERA": 2.3351,
"WHIP": 1.0703,
"ER_per_IP": 0.25946,
"H_per_IP": 0.76216,
"BB_per_IP": 0.30811,
"SO_per_IP": 0.85946,
"HR_per_IP": 0.0973
}
},
"season": {
"games": 33,
"totals": {
"IP": 192.0,
"ER": 66.0,
"R": 68.0,
"H": 149.0,
"BB": 73.0,
"SO": 167.0,
"HR": 20.0,
"BF": 783.0,
"Pitches": 3078.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0606,
"H": 4.5152,
"BB": 2.2121,
"SO": 5.0606,
"HR": 0.6061,
"BF": 23.7273,
"Pitches": 93.2727
},
"rates": {
"ERA": 3.0938,
"WHIP": 1.1562,
"ER_per_IP": 0.34375,
"H_per_IP": 0.77604,
"BB_per_IP": 0.38021,
"SO_per_IP": 0.86979,
"HR_per_IP": 0.10417
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.998,
"predicted_H": 4.727,
"predicted_BB": 2.02,
"predicted_SO": 5.192,
"predicted_HR": 0.554,
"predicted_ERA": 3.0261,
"predicted_WHIP": 1.1354
}
},
"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": 2.0,
"form": 1.998,
"final": 1.9988,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.727,
"final": 5.2433,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.02,
"final": 1.2007,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.192,
"final": 4.7085,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.554,
"final": 0.7349,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0261,
"final": 3.0261,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1354,
"final": 1.1354,
"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": 61.2,
"ER": 16,
"H": 47,
"BB": 19,
"SO": 53,
"HR": 6,
"ERA": 2.335135135135135,
"WHIP": 1.0702702702702702,
"K9": 7.735135135135135,
"HR9": 0.8756756756756756,
"games_pitched": 10,
"quality_starts": 9,
"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-29T00:00:00"
},
"recent_form_boost": 0.7505708436513586,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 1.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": 2,
"predicted_H": 6,
"predicted_BB": 0,
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 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.9922,
"defense_index": 1.0686,
"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": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1433,
"defense_index": 1.1775,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"edges": {
"quality_edge": -0.1938,
"offense_edge": -0.0078,
"opponent_offense_edge": 0.1433,
"defense_strength": 0.0686,
"opponent_defense_weakness": -0.1775,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9886,
"run_prevention": 1.0258,
"strikeout": 0.9827
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0358,
"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.0884,
"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": 6.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20261004_SD@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261004 | 20261004_SD@MIL | home | Logan Henderson | Logan Henderson | True | 6.0 | 5.0 | -3 | 3 | 1 | -2 | 2/2 | 1/3 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.471186440677966,
"WHIP": 0.8440677966101695,
"IP": 98.1,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.463,
"recent_avg_IP": 5.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6816,
"sample_weight": 1.0,
"run_prevention_factor": 0.9421,
"strikeout_factor": 1.0503,
"walk_factor": 0.918,
"homer_factor": 0.9667,
"regression_flag": "neutral",
"k_percent": 29.6,
"bb_percent": 5.1,
"woba": 0.252,
"xwoba": 0.257,
"barrel_percent": 8.3,
"hard_hit_percent": 36.9,
"whiff_percent": 26.5
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 98.1,
"season_ERA": 2.471,
"season_WHIP": 0.844,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "701656",
"report_date": "20261004",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 7.0,
"R": 8.0,
"H": 16.0,
"BB": 5.0,
"SO": 31.0,
"HR": 4.0,
"BF": 107.0,
"Pitches": 462.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.6,
"H": 3.2,
"BB": 1.0,
"SO": 6.2,
"HR": 0.8,
"BF": 21.4,
"Pitches": 92.4
},
"rates": {
"ERA": 2.1724,
"WHIP": 0.7241,
"ER_per_IP": 0.24138,
"H_per_IP": 0.55172,
"BB_per_IP": 0.17241,
"SO_per_IP": 1.06897,
"HR_per_IP": 0.13793
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 14.0,
"R": 15.0,
"H": 35.0,
"BB": 12.0,
"SO": 63.0,
"HR": 9.0,
"BF": 223.0,
"Pitches": 922.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.5,
"H": 3.5,
"BB": 1.2,
"SO": 6.3,
"HR": 0.9,
"BF": 22.3,
"Pitches": 92.2
},
"rates": {
"ERA": 2.1,
"WHIP": 0.7833,
"ER_per_IP": 0.23333,
"H_per_IP": 0.58333,
"BB_per_IP": 0.2,
"SO_per_IP": 1.05,
"HR_per_IP": 0.15
}
},
"season": {
"games": 18,
"totals": {
"IP": 98.1,
"ER": 27.0,
"R": 28.0,
"H": 64.0,
"BB": 19.0,
"SO": 110.0,
"HR": 14.0,
"BF": 371.0,
"Pitches": 1505.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.5556,
"H": 3.5556,
"BB": 1.0556,
"SO": 6.1111,
"HR": 0.7778,
"BF": 20.6111,
"Pitches": 83.6111
},
"rates": {
"ERA": 2.4712,
"WHIP": 0.8441,
"ER_per_IP": 0.27458,
"H_per_IP": 0.65085,
"BB_per_IP": 0.19322,
"SO_per_IP": 1.11864,
"HR_per_IP": 0.14237
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.752,
"predicted_H": 3.871,
"predicted_BB": 1.319,
"predicted_SO": 6.021,
"predicted_HR": 0.832,
"predicted_ERA": 2.7294,
"predicted_WHIP": 0.8981
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.752,
"final": 2.3034,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.871,
"final": 3.0443,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.319,
"final": 1.178,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.021,
"final": 6.8954,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.832,
"final": 0.9062,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7294,
"final": 2.7294,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8981,
"final": 0.8981,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 14,
"H": 35,
"BB": 12,
"SO": 63,
"HR": 9,
"ERA": 2.1,
"WHIP": 0.7833333333333334,
"K9": 9.450000000000001,
"HR9": 1.35,
"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-23T00:00:00"
},
"recent_form_boost": 0.7169447175252327,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "701656",
"player_name": "Logan Henderson",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1433,
"defense_index": 1.1775,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"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.9922,
"defense_index": 1.0686,
"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.1938,
"offense_edge": 0.1433,
"opponent_offense_edge": -0.0078,
"defense_strength": 0.1775,
"opponent_defense_weakness": -0.0686,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0134,
"run_prevention": 0.9713,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "701656",
"profile": {
"available": true,
"pitcher_id": "701656",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 348.0,
"k_percent": 29.6,
"bb_percent": 5.1,
"woba": 0.252,
"xwoba": 0.257,
"sweet_spot_percent": 32.4,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 36.9,
"avg_best_speed": 77.2333,
"avg_hyper_speed": 93.8148,
"whiff_percent": 26.5,
"swing_percent": 53.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9063,
"command_and_miss": 0.7521,
"regression_edge": -0.1429,
"xwoba_edge": 1.5714,
"barrel_edge": -0.2444,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.1857,
"bb_edge": 1.025,
"pitch_design_score": -0.0895
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "701656",
"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": 88.2657231915627,
"release_spin_rate": 2417.7993644891867,
"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": 88.2657231915627,
"release_spin_rate": 2417.7993644891867,
"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.2657,
"release_spin_rate": 2417.7994,
"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.0895,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6394,
"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.6816,
"sample_weight": 1.0,
"run_prevention_factor": 0.9421,
"strikeout_factor": 1.0503,
"walk_factor": 0.918,
"homer_factor": 0.9667,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "701656",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9421,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9421,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.918,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9667,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0503,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20261004_SD@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261005 | 20261005_CHW@CLE | away | Anthony Kay | Anthony Kay | True | 4.2 | 0.1 | -13 | 1 | 1 | 0 | 5/1 | 1/1 | 4/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.3875,
"WHIP": 1.375,
"IP": 160.0,
"games_started": null,
"games_pitched": 35,
"role_avg_IP": 4.871,
"recent_avg_IP": 4.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3447,
"sample_weight": 1.0,
"run_prevention_factor": 1.0293,
"strikeout_factor": 0.9674,
"walk_factor": 0.974,
"homer_factor": 1.0474,
"regression_flag": "neutral",
"k_percent": 18.2,
"bb_percent": 7.9,
"woba": 0.339,
"xwoba": 0.342,
"barrel_percent": 8.1,
"hard_hit_percent": 38.9,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 44,
"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": 35.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.875,
"prior_weight": 0.125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641743",
"report_date": "20261005",
"season_year": 2026,
"rows_used": 35,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 15.0,
"ER": 5.0,
"R": 7.0,
"H": 15.0,
"BB": 7.0,
"SO": 11.0,
"HR": 1.0,
"BF": 67.0,
"Pitches": 238.0
},
"per_game": {
"IP": 3.0,
"ER": 1.0,
"R": 1.4,
"H": 3.0,
"BB": 1.4,
"SO": 2.2,
"HR": 0.2,
"BF": 13.4,
"Pitches": 47.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.4667,
"ER_per_IP": 0.33333,
"H_per_IP": 1.0,
"BB_per_IP": 0.46667,
"SO_per_IP": 0.73333,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 38.2,
"ER": 24.0,
"R": 27.0,
"H": 43.0,
"BB": 14.0,
"SO": 31.0,
"HR": 5.0,
"BF": 178.0,
"Pitches": 669.0
},
"per_game": {
"IP": 4.0,
"ER": 2.4,
"R": 2.7,
"H": 4.3,
"BB": 1.4,
"SO": 3.1,
"HR": 0.5,
"BF": 17.8,
"Pitches": 66.9
},
"rates": {
"ERA": 5.5862,
"WHIP": 1.4741,
"ER_per_IP": 0.62069,
"H_per_IP": 1.11207,
"BB_per_IP": 0.36207,
"SO_per_IP": 0.80172,
"HR_per_IP": 0.12931
}
},
"season": {
"games": 35,
"totals": {
"IP": 160.0,
"ER": 78.0,
"R": 85.0,
"H": 162.0,
"BB": 58.0,
"SO": 129.0,
"HR": 21.0,
"BF": 719.0,
"Pitches": 2821.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2286,
"R": 2.4286,
"H": 4.6286,
"BB": 1.6571,
"SO": 3.6857,
"HR": 0.6,
"BF": 20.5429,
"Pitches": 80.6
},
"rates": {
"ERA": 4.3875,
"WHIP": 1.375,
"ER_per_IP": 0.4875,
"H_per_IP": 1.0125,
"BB_per_IP": 0.3625,
"SO_per_IP": 0.80625,
"HR_per_IP": 0.13125
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.792,
"predicted_H": 3.938,
"predicted_BB": 1.544,
"predicted_SO": 3.015,
"predicted_HR": 0.408,
"predicted_ERA": 4.2372,
"predicted_WHIP": 1.4401
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4028,
"form_weight": 0.5972,
"form_reliability": 0.875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 35.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.875,
"prior_weight": 0.125
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.792,
"final": 1.473,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.938,
"final": 4.3658,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.544,
"final": 1.3249,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.015,
"final": 3.4118,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.408,
"final": 0.2437,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2372,
"final": 4.2372,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4401,
"final": 1.4401,
"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": 38.2,
"ER": 24,
"H": 43,
"BB": 14,
"SO": 31,
"HR": 5,
"ERA": 5.586206896551724,
"WHIP": 1.4741379310344829,
"K9": 7.2155172413793105,
"HR9": 1.163793103448276,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-03T00:00:00"
},
"recent_form_boost": 1.1254953965211363,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 35.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.875,
"prior_weight": 0.125
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641743",
"player_name": "Anthony Kay",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 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.0667,
"defense_index": 1.0104,
"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.1281
},
"opponent": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.932,
"defense_index": 1.0907,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0062,
"offense_edge": 0.0667,
"opponent_offense_edge": -0.068,
"defense_strength": 0.0104,
"opponent_defense_weakness": -0.0907,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0028,
"run_prevention": 0.9884,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641743",
"profile": {
"available": true,
"pitcher_id": "641743",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 659.0,
"k_percent": 18.2,
"bb_percent": 7.9,
"woba": 0.339,
"xwoba": 0.342,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.9,
"avg_best_speed": 76.4956,
"avg_hyper_speed": 94.2252,
"whiff_percent": 23.4,
"swing_percent": 47.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4736,
"command_and_miss": -0.2757,
"regression_edge": -0.0857,
"xwoba_edge": -0.8571,
"barrel_edge": -0.2,
"hard_hit_edge": -0.1429,
"whiff_edge": -0.2571,
"bb_edge": 0.325,
"pitch_design_score": 0.0101
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 66,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 90.04480777448889,
"release_spin_rate": 2295.850070240423,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 90.04480777448889,
"release_spin_rate": 2295.850070240423,
"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.0448,
"release_spin_rate": 2295.8501,
"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.0101,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0723,
"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.3447,
"sample_weight": 1.0,
"run_prevention_factor": 1.0293,
"strikeout_factor": 0.9674,
"walk_factor": 0.974,
"homer_factor": 1.0474,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641743",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0293,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0293,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0474,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9674,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 78,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20261005_CHW@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261005 | 20261005_CHW@CLE | home | Gavin Williams | Gavin Williams | True | 5.2 | 5.0 | -2 | 3 | 2 | -1 | 6/4 | 0/3 | 6/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7594936708860756,
"WHIP": 1.1121157323688968,
"IP": 184.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.76,
"recent_avg_IP": 5.667,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9812,
"strikeout_factor": 1.1069,
"walk_factor": 0.98,
"homer_factor": 1.1158,
"regression_flag": "neutral",
"k_percent": 33.2,
"bb_percent": 8.2,
"woba": 0.294,
"xwoba": 0.302,
"barrel_percent": 11.4,
"hard_hit_percent": 46.6,
"whiff_percent": 32.8
},
"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": 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": "668909",
"report_date": "20261005",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 8.0,
"R": 9.0,
"H": 18.0,
"BB": 12.0,
"SO": 44.0,
"HR": 1.0,
"BF": 114.0,
"Pitches": 472.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.8,
"H": 3.6,
"BB": 2.4,
"SO": 8.8,
"HR": 0.2,
"BF": 22.8,
"Pitches": 94.4
},
"rates": {
"ERA": 2.5412,
"WHIP": 1.0588,
"ER_per_IP": 0.28235,
"H_per_IP": 0.63529,
"BB_per_IP": 0.42353,
"SO_per_IP": 1.55294,
"HR_per_IP": 0.03529
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 22.0,
"R": 23.0,
"H": 39.0,
"BB": 23.0,
"SO": 80.0,
"HR": 7.0,
"BF": 214.0,
"Pitches": 912.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.3,
"H": 3.9,
"BB": 2.3,
"SO": 8.0,
"HR": 0.7,
"BF": 21.4,
"Pitches": 91.2
},
"rates": {
"ERA": 3.8824,
"WHIP": 1.2157,
"ER_per_IP": 0.43137,
"H_per_IP": 0.76471,
"BB_per_IP": 0.45098,
"SO_per_IP": 1.56863,
"HR_per_IP": 0.13725
}
},
"season": {
"games": 32,
"totals": {
"IP": 184.1,
"ER": 77.0,
"R": 81.0,
"H": 144.0,
"BB": 61.0,
"SO": 248.0,
"HR": 28.0,
"BF": 746.0,
"Pitches": 2991.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4062,
"R": 2.5312,
"H": 4.5,
"BB": 1.9062,
"SO": 7.75,
"HR": 0.875,
"BF": 23.3125,
"Pitches": 93.4688
},
"rates": {
"ERA": 3.7595,
"WHIP": 1.1121,
"ER_per_IP": 0.41772,
"H_per_IP": 0.78119,
"BB_per_IP": 0.33092,
"SO_per_IP": 1.34539,
"HR_per_IP": 0.1519
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.088,
"predicted_H": 4.081,
"predicted_BB": 2.24,
"predicted_SO": 7.86,
"predicted_HR": 0.555,
"predicted_ERA": 3.4386,
"predicted_WHIP": 1.1568
}
},
"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.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.088,
"final": 2.4593,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.081,
"final": 4.8622,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.24,
"final": 1.3281,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 7.86,
"final": 5.8816,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.555,
"final": 0.7362,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4386,
"final": 3.4386,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1568,
"final": 1.1568,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.0,
"ER": 22,
"H": 39,
"BB": 23,
"SO": 80,
"HR": 7,
"ERA": 3.8823529411764706,
"WHIP": 1.2156862745098038,
"K9": 14.117647058823529,
"HR9": 1.2352941176470589,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.9273505351283032,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.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": 6,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "668909",
"player_name": "Gavin Williams",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 6.0,
"delta": -2.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 6.0,
"delta": -2.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.932,
"defense_index": 1.0907,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"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.0667,
"defense_index": 1.0104,
"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.1281
},
"edges": {
"quality_edge": 0.0062,
"offense_edge": -0.068,
"opponent_offense_edge": 0.0667,
"defense_strength": 0.0907,
"opponent_defense_weakness": -0.0104,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0003,
"run_prevention": 1.0013,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668909",
"profile": {
"available": true,
"pitcher_id": "668909",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 700.0,
"k_percent": 33.2,
"bb_percent": 8.2,
"woba": 0.294,
"xwoba": 0.302,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 11.4,
"hard_hit_percent": 46.6,
"avg_best_speed": 79.2974,
"avg_hyper_speed": 94.9953,
"whiff_percent": 32.8,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1041,
"command_and_miss": 1.1436,
"regression_edge": -0.2286,
"xwoba_edge": 0.2857,
"barrel_edge": -0.9333,
"hard_hit_edge": -1.2429,
"whiff_edge": 1.0857,
"bb_edge": 0.25,
"pitch_design_score": 0.0624
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "668909",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 90.97845935651245,
"release_spin_rate": 2292.19753528252,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 90.97845935651245,
"release_spin_rate": 2292.19753528252,
"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.9785,
"release_spin_rate": 2292.1975,
"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.0624,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4457,
"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.2212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9812,
"strikeout_factor": 1.1069,
"walk_factor": 0.98,
"homer_factor": 1.1158,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "668909",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9812,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9812,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1158,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.1069,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20261005_CHW@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261005 | 20261005_NYY@TB | away | Cam Schlittler | Cam Schlittler | True | 6.0 | 4.1 | -5 | 1 | 2 | 1 | 3/6 | 4/1 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.89,
"WHIP": 0.905,
"IP": 200.0,
"games_started": null,
"games_pitched": 34,
"role_avg_IP": 5.882,
"recent_avg_IP": 5.667,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7136,
"sample_weight": 1.0,
"run_prevention_factor": 0.9393,
"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": 95,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 200.0,
"season_ERA": 1.89,
"season_WHIP": 0.905,
"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": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693645",
"report_date": "20261005",
"season_year": 2026,
"rows_used": 34,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 3.0,
"R": 6.0,
"H": 12.0,
"BB": 8.0,
"SO": 39.0,
"HR": 1.0,
"BF": 106.0,
"Pitches": 475.0
},
"per_game": {
"IP": 5.2,
"ER": 0.6,
"R": 1.2,
"H": 2.4,
"BB": 1.6,
"SO": 7.8,
"HR": 0.2,
"BF": 21.2,
"Pitches": 95.0
},
"rates": {
"ERA": 0.9529,
"WHIP": 0.7059,
"ER_per_IP": 0.10588,
"H_per_IP": 0.42353,
"BB_per_IP": 0.28235,
"SO_per_IP": 1.37647,
"HR_per_IP": 0.03529
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 7.0,
"R": 10.0,
"H": 29.0,
"BB": 19.0,
"SO": 78.0,
"HR": 3.0,
"BF": 228.0,
"Pitches": 965.0
},
"per_game": {
"IP": 6.0,
"ER": 0.7,
"R": 1.0,
"H": 2.9,
"BB": 1.9,
"SO": 7.8,
"HR": 0.3,
"BF": 22.8,
"Pitches": 96.5
},
"rates": {
"ERA": 1.0442,
"WHIP": 0.7956,
"ER_per_IP": 0.11602,
"H_per_IP": 0.48066,
"BB_per_IP": 0.31492,
"SO_per_IP": 1.29282,
"HR_per_IP": 0.04972
}
},
"season": {
"games": 34,
"totals": {
"IP": 200.0,
"ER": 42.0,
"R": 52.0,
"H": 131.0,
"BB": 50.0,
"SO": 249.0,
"HR": 16.0,
"BF": 783.0,
"Pitches": 3158.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2353,
"R": 1.5294,
"H": 3.8529,
"BB": 1.4706,
"SO": 7.3235,
"HR": 0.4706,
"BF": 23.0294,
"Pitches": 92.8824
},
"rates": {
"ERA": 1.89,
"WHIP": 0.905,
"ER_per_IP": 0.21,
"H_per_IP": 0.655,
"BB_per_IP": 0.25,
"SO_per_IP": 1.245,
"HR_per_IP": 0.08
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.053,
"predicted_H": 3.247,
"predicted_BB": 1.756,
"predicted_SO": 7.462,
"predicted_HR": 0.363,
"predicted_ERA": 1.6141,
"predicted_WHIP": 0.8524
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4042,
"form_weight": 0.5958,
"form_reliability": 0.8718,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.053,
"final": 1.4357,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.247,
"final": 3.1472,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.756,
"final": 2.6629,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.462,
"final": 6.0628,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.363,
"final": 0.2163,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.6141,
"final": 1.6141,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8524,
"final": 0.8524,
"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.1,
"ER": 7,
"H": 29,
"BB": 19,
"SO": 78,
"HR": 3,
"ERA": 1.0441988950276242,
"WHIP": 0.7955801104972375,
"K9": 11.6353591160221,
"HR9": 0.4475138121546961,
"games_pitched": 10,
"quality_starts": 7,
"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-29T00:00:00"
},
"recent_form_boost": 0.6866325542112777,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 7,
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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.0225,
"defense_index": 1.2025,
"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.171
},
"opponent": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0121,
"defense_index": 1.1188,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"edges": {
"quality_edge": 0.0168,
"offense_edge": 0.0225,
"opponent_offense_edge": 0.0121,
"defense_strength": 0.2025,
"opponent_defense_weakness": -0.1188,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9808,
"strikeout": 0.9995
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8911,
"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": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"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": 96,
"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.7136,
"sample_weight": 1.0,
"run_prevention_factor": 0.9393,
"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.9393,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9393,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.944,
"adjusted": 2
},
"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": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 113,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20261005_NYY@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261005 | 20261005_NYY@TB | home | Freddy Peralta | Freddy Peralta | True | 5.1 | 4.2 | -2 | 4 | 1 | -3 | 7/3 | 2/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.420118343195266,
"WHIP": 1.3254437869822486,
"IP": 169.0,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.281,
"recent_avg_IP": 5.6,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1426,
"sample_weight": 1.0,
"run_prevention_factor": 0.9879,
"strikeout_factor": 1.0011,
"walk_factor": 0.988,
"homer_factor": 0.9625,
"regression_flag": "neutral",
"k_percent": 21.4,
"bb_percent": 8.6,
"woba": 0.323,
"xwoba": 0.302,
"barrel_percent": 5.8,
"hard_hit_percent": 37.2,
"whiff_percent": 26.1
},
"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": 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": "642547",
"report_date": "20261005",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 3.0,
"R": 3.0,
"H": 16.0,
"BB": 9.0,
"SO": 23.0,
"HR": 1.0,
"BF": 109.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.2,
"ER": 0.6,
"R": 0.6,
"H": 3.2,
"BB": 1.8,
"SO": 4.6,
"HR": 0.2,
"BF": 21.8,
"Pitches": 88.4
},
"rates": {
"ERA": 0.9643,
"WHIP": 0.8929,
"ER_per_IP": 0.10714,
"H_per_IP": 0.57143,
"BB_per_IP": 0.32143,
"SO_per_IP": 0.82143,
"HR_per_IP": 0.03571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 20.0,
"R": 20.0,
"H": 41.0,
"BB": 15.0,
"SO": 43.0,
"HR": 6.0,
"BF": 218.0,
"Pitches": 866.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.1,
"BB": 1.5,
"SO": 4.3,
"HR": 0.6,
"BF": 21.8,
"Pitches": 86.6
},
"rates": {
"ERA": 3.253,
"WHIP": 1.012,
"ER_per_IP": 0.36145,
"H_per_IP": 0.74096,
"BB_per_IP": 0.27108,
"SO_per_IP": 0.77711,
"HR_per_IP": 0.10843
}
},
"season": {
"games": 32,
"totals": {
"IP": 169.0,
"ER": 83.0,
"R": 91.0,
"H": 161.0,
"BB": 63.0,
"SO": 156.0,
"HR": 23.0,
"BF": 730.0,
"Pitches": 2959.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5938,
"R": 2.8438,
"H": 5.0312,
"BB": 1.9688,
"SO": 4.875,
"HR": 0.7188,
"BF": 22.8125,
"Pitches": 92.4688
},
"rates": {
"ERA": 4.4201,
"WHIP": 1.3254,
"ER_per_IP": 0.49112,
"H_per_IP": 0.95266,
"BB_per_IP": 0.37278,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.13609
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.699,
"predicted_H": 4.142,
"predicted_BB": 1.797,
"predicted_SO": 4.679,
"predicted_HR": 0.502,
"predicted_ERA": 2.7486,
"predicted_WHIP": 1.0675
}
},
"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.1,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.699,
"final": 2.6357,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.142,
"final": 5.3054,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.797,
"final": 1.8796,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.679,
"final": 4.4026,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.502,
"final": 0.7047,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7486,
"final": 2.7486,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0675,
"final": 1.0675,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 20,
"H": 41,
"BB": 15,
"SO": 43,
"HR": 6,
"ERA": 3.253012048192771,
"WHIP": 1.0120481927710843,
"K9": 6.993975903614458,
"HR9": 0.9759036144578312,
"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-25T00:00:00"
},
"recent_form_boost": 0.8514587326241692,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "642547",
"player_name": "Freddy Peralta",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0121,
"defense_index": 1.1188,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"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.0225,
"defense_index": 1.2025,
"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.171
},
"edges": {
"quality_edge": -0.0168,
"offense_edge": 0.0121,
"opponent_offense_edge": 0.0225,
"defense_strength": 0.1188,
"opponent_defense_weakness": -0.2025,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9926,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642547",
"profile": {
"available": true,
"pitcher_id": "642547",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 683.0,
"k_percent": 21.4,
"bb_percent": 8.6,
"woba": 0.323,
"xwoba": 0.302,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 5.8,
"hard_hit_percent": 37.2,
"avg_best_speed": 76.4239,
"avg_hyper_speed": 93.4809,
"whiff_percent": 26.1,
"swing_percent": 48.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.138,
"command_and_miss": 0.03,
"regression_edge": 0.6,
"xwoba_edge": 0.2857,
"barrel_edge": 0.3111,
"hard_hit_edge": 0.1,
"whiff_edge": 0.1286,
"bb_edge": 0.15,
"pitch_design_score": -0.0309
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642547",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 89.31293809090894,
"release_spin_rate": 2298.363391166723,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 89.31293809090894,
"release_spin_rate": 2298.363391166723,
"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.3129,
"release_spin_rate": 2298.3634,
"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.0309,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2205,
"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.1426,
"sample_weight": 1.0,
"run_prevention_factor": 0.9879,
"strikeout_factor": 1.0011,
"walk_factor": 0.988,
"homer_factor": 0.9625,
"woba_minus_xwoba": 0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "642547",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9879,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9879,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.988,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9625,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0011,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20261005_NYY@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261006 | 20261006_LAD@ATL | away | Yoshinobu Yamamoto | Yoshinobu Yamamoto | True | 6.1 | 7.0 | 2 | 1 | 1 | 0 | 3/4 | 1/1 | 4/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5297297297297296,
"WHIP": 0.8702702702702703,
"IP": 185.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 6.607,
"recent_avg_IP": 6.667,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6349,
"sample_weight": 1.0,
"run_prevention_factor": 0.946,
"strikeout_factor": 1.036,
"walk_factor": 0.934,
"homer_factor": 0.9344,
"regression_flag": "neutral",
"k_percent": 25.7,
"bb_percent": 5.9,
"woba": 0.242,
"xwoba": 0.266,
"barrel_percent": 6.5,
"hard_hit_percent": 35.5,
"whiff_percent": 27.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": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "808967",
"report_date": "20261006",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.1,
"ER": 8.0,
"R": 10.0,
"H": 18.0,
"BB": 7.0,
"SO": 37.0,
"HR": 5.0,
"BF": 125.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.2,
"ER": 1.6,
"R": 2.0,
"H": 3.6,
"BB": 1.4,
"SO": 7.4,
"HR": 1.0,
"BF": 25.0,
"Pitches": 93.4
},
"rates": {
"ERA": 2.16,
"WHIP": 0.75,
"ER_per_IP": 0.24,
"H_per_IP": 0.54,
"BB_per_IP": 0.21,
"SO_per_IP": 1.11,
"HR_per_IP": 0.15
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 65.1,
"ER": 15.0,
"R": 17.0,
"H": 39.0,
"BB": 17.0,
"SO": 69.0,
"HR": 7.0,
"BF": 253.0,
"Pitches": 974.0
},
"per_game": {
"IP": 6.2,
"ER": 1.5,
"R": 1.7,
"H": 3.9,
"BB": 1.7,
"SO": 6.9,
"HR": 0.7,
"BF": 25.3,
"Pitches": 97.4
},
"rates": {
"ERA": 2.0663,
"WHIP": 0.8571,
"ER_per_IP": 0.22959,
"H_per_IP": 0.59694,
"BB_per_IP": 0.2602,
"SO_per_IP": 1.05612,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 28,
"totals": {
"IP": 185.0,
"ER": 52.0,
"R": 55.0,
"H": 119.0,
"BB": 42.0,
"SO": 182.0,
"HR": 20.0,
"BF": 708.0,
"Pitches": 2734.0
},
"per_game": {
"IP": 6.2,
"ER": 1.8571,
"R": 1.9643,
"H": 4.25,
"BB": 1.5,
"SO": 6.5,
"HR": 0.7143,
"BF": 25.2857,
"Pitches": 97.6429
},
"rates": {
"ERA": 2.5297,
"WHIP": 0.8703,
"ER_per_IP": 0.28108,
"H_per_IP": 0.64324,
"BB_per_IP": 0.22703,
"SO_per_IP": 0.98378,
"HR_per_IP": 0.10811
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 1.902,
"predicted_H": 4.278,
"predicted_BB": 1.691,
"predicted_SO": 6.972,
"predicted_HR": 0.866,
"predicted_ERA": 2.5672,
"predicted_WHIP": 0.8954
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.2,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.902,
"final": 2.3566,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.278,
"final": 4.9909,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.691,
"final": 1.8189,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.972,
"final": 6.9836,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.866,
"final": 0.5075,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5672,
"final": 2.5672,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8954,
"final": 0.8954,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 65.1,
"ER": 15,
"H": 39,
"BB": 17,
"SO": 69,
"HR": 7,
"ERA": 2.0663265306122445,
"WHIP": 0.857142857142857,
"K9": 9.505102040816325,
"HR9": 0.9642857142857142,
"games_pitched": 10,
"quality_starts": 8,
"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-23T00:00:00"
},
"recent_form_boost": 0.7142559190957065,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.5792,
"BB": 0.2165,
"SO": 1.062,
"HR": 0.1341
},
"source": "recent_role_blend",
"tto_penalty": 1.0081,
"role_avg_IP": 6.607,
"recent_avg_IP": 6.667
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0136,
"run_prevention": 0.9719,
"strikeout": 1.0044
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.036,
"walk_factor": 0.934,
"homer_factor": 0.9344,
"run_prevention_factor": 0.946,
"quality_score": 0.6349
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0094,
"BB": 0.947,
"SO": 0.9856,
"HR": 1.0992
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 0.9919,
"SO": 0.9949,
"HR": 1.0
},
"earned_run_factor": 0.9985,
"before": {
"H": 3.424,
"BB": 1.279,
"SO": 6.488,
"HR": 0.799,
"ER": 1.524,
"ERA": 2.224
},
"after": {
"H": 3.424,
"BB": 1.2686,
"SO": 6.4549,
"HR": 0.799,
"ER": 1.5216,
"ERA": 2.221
},
"by_hitter": [
{
"hitter": "Drake Baldwin",
"plate_appearances": 4.532,
"stand": "L",
"H_batter": 1.0749,
"H_platoon": 0.9905,
"H_bvp": 1.0,
"BB_batter": 1.0503,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 0.9527,
"SO_platoon": 0.9877,
"SO_bvp": 1.0,
"HR_batter": 1.2155,
"HR_platoon": 1.0102,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0647,
"BB": 1.0772,
"SO": 0.941,
"HR": 1.2279
}
},
{
"hitter": "Ronald Acu\u00f1a Jr.",
"plate_appearances": 4.342,
"stand": "R",
"H_batter": 1.0027,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.2377,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.9706,
"SO_platoon": 1.0158,
"SO_bvp": 1.0,
"HR_batter": 1.2273,
"HR_platoon": 0.9906,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9936,
"BB": 1.1811,
"SO": 0.9859,
"HR": 1.2158
}
},
{
"hitter": "Matt Olson",
"plate_appearances": 4.268,
"stand": "L",
"H_batter": 1.0081,
"H_platoon": 0.9905,
"H_bvp": 0.9563,
"BB_batter": 1.0411,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.1001,
"SO_platoon": 0.9877,
"SO_bvp": 1.0072,
"HR_batter": 1.652,
"HR_platoon": 1.0102,
"HR_bvp": 0.9563,
"bvp_at_bats": 6.0,
"combined": {
"H": 0.9549,
"BB": 1.0678,
"SO": 1.0944,
"HR": 1.5959
}
},
{
"hitter": "Ozzie Albies",
"plate_appearances": 4.091,
"stand": "L",
"H_batter": 0.9911,
"H_platoon": 0.9905,
"H_bvp": 0.9975,
"BB_batter": 0.8644,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 0.7099,
"SO_platoon": 0.9877,
"SO_bvp": 1.0509,
"HR_batter": 1.0931,
"HR_platoon": 1.0102,
"HR_bvp": 0.9667,
"bvp_at_bats": 5.0,
"combined": {
"H": 0.9792,
"BB": 0.8865,
"SO": 0.7369,
"HR": 1.0675
}
},
{
"hitter": "Michael Harris II",
"plate_appearances": 4.322,
"stand": "L",
"H_batter": 1.1674,
"H_platoon": 0.9905,
"H_bvp": 1.0053,
"BB_batter": 0.4814,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 0.8714,
"SO_platoon": 0.9877,
"SO_bvp": 1.0206,
"HR_batter": 1.2796,
"HR_platoon": 1.0102,
"HR_bvp": 0.9563,
"bvp_at_bats": 6.0,
"combined": {
"H": 1.1624,
"BB": 0.4937,
"SO": 0.8784,
"HR": 1.2362
}
},
{
"hitter": "Mauricio Dub\u00f3n",
"plate_appearances": 4.047,
"stand": "R",
"H_batter": 1.0911,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.7309,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.5984,
"SO_platoon": 1.0158,
"SO_bvp": 1.0,
"HR_batter": 0.7342,
"HR_platoon": 0.9906,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0812,
"BB": 0.6975,
"SO": 0.6079,
"HR": 0.7273
}
},
{
"hitter": "Lane Thomas",
"plate_appearances": 3.609,
"stand": "R",
"H_batter": 0.9589,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.1978,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 1.125,
"SO_platoon": 1.0158,
"SO_bvp": 1.0,
"HR_batter": 0.9802,
"HR_platoon": 0.9906,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9502,
"BB": 1.1431,
"SO": 1.1428,
"HR": 0.971
}
},
{
"hitter": "Austin Riley",
"plate_appearances": 3.72,
"stand": "R",
"H_batter": 0.9409,
"H_platoon": 0.9909,
"H_bvp": 0.9991,
"BB_batter": 0.9251,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 1.3699,
"SO_platoon": 1.0158,
"SO_bvp": 1.0103,
"HR_batter": 1.0129,
"HR_platoon": 0.9906,
"HR_bvp": 0.9667,
"bvp_at_bats": 5.0,
"combined": {
"H": 0.9315,
"BB": 0.8828,
"SO": 1.4059,
"HR": 0.97
}
},
{
"hitter": "Ha-Seong Kim",
"plate_appearances": 3.174,
"stand": "R",
"H_batter": 0.8845,
"H_platoon": 0.9909,
"H_bvp": 1.0533,
"BB_batter": 1.1987,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 1.1558,
"SO_platoon": 1.0158,
"SO_bvp": 1.0048,
"HR_batter": 0.6263,
"HR_platoon": 0.9906,
"HR_bvp": 1.15,
"bvp_at_bats": 7.0,
"combined": {
"H": 0.9232,
"BB": 1.1439,
"SO": 1.1797,
"HR": 0.7135
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 23.201
},
"player_attribution": {
"home_runs": {
"model_delta": -0.6627,
"weighted_stage_delta": -0.2916
},
"away_runs": {
"model_delta": -0.4307,
"weighted_stage_delta": -0.3359
},
"home_win": {
"model_delta": 0.02,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.2,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.5216,
"market_implied": 1.8011,
"market_multiplier": 1.1837,
"weight": 0.4659,
"effective_multiplier": 1.0817,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 2,
"market_p_over": 0.5375,
"model_p_over": 0.4494,
"implied_multiplier": 1.1837
}
]
},
"H": {
"model": 3.424,
"market_implied": 4.8449,
"market_multiplier": 1.415,
"weight": 0.4659,
"effective_multiplier": 1.1755,
"lines": [
4.5
],
"books": 4,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 4.5,
"books": 4,
"market_p_over": 0.5319,
"model_p_over": 0.2603,
"implied_multiplier": 1.415
}
]
},
"OUTS": {
"model": 18.498,
"market_implied": 20.3886,
"market_multiplier": 1.1022,
"weight": 0.5348,
"effective_multiplier": 1.0534,
"lines": [
17.5
],
"books": 6,
"props": [
{
"market": "pitcher_outs",
"point": 17.5,
"books": 6,
"market_p_over": 0.6472,
"model_p_over": 0.5171,
"implied_multiplier": 1.1022
}
]
},
"SO": {
"model": 6.4549,
"market_implied": 6.3631,
"market_multiplier": 0.9858,
"weight": 0.537,
"effective_multiplier": 0.9923,
"lines": [
6.5
],
"books": 6,
"props": [
{
"market": "pitcher_strikeouts",
"point": 6.5,
"books": 6,
"market_p_over": 0.4518,
"model_p_over": 0.4664,
"implied_multiplier": 0.9858
}
]
},
"BB": {
"model": 1.2686,
"market_implied": 1.4234,
"market_multiplier": 1.122,
"weight": 0.537,
"effective_multiplier": 1.0638,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.4162,
"model_p_over": 0.362,
"implied_multiplier": 1.122
}
]
}
},
"expected_before": {
"SO": 6.4549,
"H": 3.424,
"BB": 1.2686,
"ER": 1.5216,
"IP": 6.166,
"ERA": 2.221
},
"expected_after": {
"SO": 6.4054,
"H": 4.025,
"BB": 1.3495,
"ER": 1.646,
"IP": 6.4954,
"ERA": 2.281
},
"line": {
"IP": 6.2,
"H": 6,
"ER": 3,
"BB": 2,
"SO": 7,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.2,
"H": 6,
"R": 3,
"ER": 3,
"BB": 2,
"SO": 7,
"HR": 0
},
"stats": {
"IP": 6.1,
"H": 3,
"R": 1,
"ER": 1,
"BB": 1,
"SO": 4,
"HR": 0,
"BF": 23,
"Pitches": 81
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "808967",
"player_name": "Yoshinobu Yamamoto",
"position": "Starter",
"team": "LAD",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"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": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"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": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.2,
"after": 6.1,
"delta": -0.1,
"percent_delta": -0.0161,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 4.0,
"delta": -3.0,
"percent_delta": -0.4286,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.1,
"delta": -0.5667,
"percent_delta": -0.085,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 4.0,
"delta": -3.0,
"percent_delta": -0.4286,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.2008,
"offense_edge": 0.1012,
"opponent_offense_edge": 0.0201,
"defense_strength": 0.2123,
"opponent_defense_weakness": -0.1619,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9719,
"strikeout": 1.0044
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "808967",
"profile": {
"available": true,
"pitcher_id": "808967",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 656.0,
"k_percent": 25.7,
"bb_percent": 5.9,
"woba": 0.242,
"xwoba": 0.266,
"sweet_spot_percent": 29.1,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 35.5,
"avg_best_speed": 76.0498,
"avg_hyper_speed": 93.7865,
"whiff_percent": 27.9,
"swing_percent": 49.6
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9999,
"command_and_miss": 0.5314,
"regression_edge": -0.6857,
"xwoba_edge": 1.3143,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.3429,
"whiff_edge": 0.3857,
"bb_edge": 0.825,
"pitch_design_score": 0.0672
},
"quality_score": 0.6349,
"sample_weight": 1.0,
"run_prevention_factor": 0.946,
"strikeout_factor": 1.036,
"walk_factor": 0.934,
"homer_factor": 0.9344,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "808967",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.946,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.934,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9344,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.036,
"adjusted": 7
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 6.1,
"H": 3,
"R": 1,
"ER": 1,
"BB": 1,
"SO": 4,
"HR": 0,
"BF": 23,
"Pitches": 81,
"source": "play_by_play_realizer_v1",
"predicted_R": 1,
"predicted_ER": 1
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20261006_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261006 | 20261006_LAD@ATL | home | Chris Sale | Chris Sale | True | 6.0 | 5.0 | -3 | 2 | 3 | 1 | 6/7 | 1/0 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.219178082191781,
"WHIP": 0.974559686888454,
"IP": 170.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 6.036,
"recent_avg_IP": 6.8,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7139,
"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": 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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "519242",
"report_date": "20261006",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 9.0,
"R": 9.0,
"H": 18.0,
"BB": 4.0,
"SO": 35.0,
"HR": 2.0,
"BF": 102.0,
"Pitches": 410.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 3.6,
"BB": 0.8,
"SO": 7.0,
"HR": 0.4,
"BF": 20.4,
"Pitches": 82.0
},
"rates": {
"ERA": 3.0759,
"WHIP": 0.8354,
"ER_per_IP": 0.34177,
"H_per_IP": 0.68354,
"BB_per_IP": 0.1519,
"SO_per_IP": 1.32911,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 15.0,
"R": 15.0,
"H": 43.0,
"BB": 6.0,
"SO": 78.0,
"HR": 2.0,
"BF": 227.0,
"Pitches": 918.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.5,
"H": 4.3,
"BB": 0.6,
"SO": 7.8,
"HR": 0.2,
"BF": 22.7,
"Pitches": 91.8
},
"rates": {
"ERA": 2.2753,
"WHIP": 0.8258,
"ER_per_IP": 0.25281,
"H_per_IP": 0.72472,
"BB_per_IP": 0.10112,
"SO_per_IP": 1.31461,
"HR_per_IP": 0.03371
}
},
"season": {
"games": 29,
"totals": {
"IP": 170.1,
"ER": 42.0,
"R": 47.0,
"H": 134.0,
"BB": 32.0,
"SO": 212.0,
"HR": 10.0,
"BF": 678.0,
"Pitches": 2690.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4483,
"R": 1.6207,
"H": 4.6207,
"BB": 1.1034,
"SO": 7.3103,
"HR": 0.3448,
"BF": 23.3793,
"Pitches": 92.7586
},
"rates": {
"ERA": 2.2192,
"WHIP": 0.9746,
"ER_per_IP": 0.24658,
"H_per_IP": 0.78669,
"BB_per_IP": 0.18787,
"SO_per_IP": 1.24462,
"HR_per_IP": 0.05871
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.878,
"predicted_H": 4.389,
"predicted_BB": 1.023,
"predicted_SO": 7.254,
"predicted_HR": 0.411,
"predicted_ERA": 2.9175,
"predicted_WHIP": 0.9342
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 5.2,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.878,
"final": 2.3404,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.389,
"final": 4.2287,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.023,
"final": 1.0135,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.254,
"final": 6.7372,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.411,
"final": 0.6538,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9175,
"final": 2.9175,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9342,
"final": 0.9342,
"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.1,
"ER": 15,
"H": 43,
"BB": 6,
"SO": 78,
"HR": 2,
"ERA": 2.2752808988764044,
"WHIP": 0.8258426966292135,
"K9": 11.831460674157302,
"HR9": 0.3033707865168539,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-01T00:00:00"
},
"recent_form_boost": 0.7369807815125833,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.7002,
"BB": 0.1449,
"SO": 1.2541,
"HR": 0.059
},
"source": "recent_role_blend",
"tto_penalty": 1.0069,
"role_avg_IP": 6.036,
"recent_avg_IP": 6.8
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 0.9928,
"run_prevention": 1.01,
"strikeout": 0.9859
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.08,
"walk_factor": 0.912,
"homer_factor": 0.9277,
"run_prevention_factor": 0.9393,
"quality_score": 0.7139
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0409,
"BB": 1.0794,
"SO": 0.8945,
"HR": 1.0715
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0115,
"SO": 0.9617,
"HR": 1.0
},
"earned_run_factor": 1.0017,
"before": {
"H": 4.087,
"BB": 0.846,
"SO": 7.144,
"HR": 0.347,
"ER": 1.519,
"ERA": 2.383
},
"after": {
"H": 4.087,
"BB": 0.8557,
"SO": 6.8704,
"HR": 0.347,
"ER": 1.5215,
"ERA": 2.387
},
"by_hitter": [
{
"hitter": "Mookie Betts",
"plate_appearances": 4.281,
"stand": "R",
"H_batter": 1.0343,
"H_platoon": 1.0124,
"H_bvp": 1.0604,
"BB_batter": 1.0159,
"BB_platoon": 1.0619,
"BB_bvp": 1.0,
"SO_batter": 0.5297,
"SO_platoon": 0.9786,
"SO_bvp": 0.9951,
"HR_batter": 1.2853,
"HR_platoon": 1.0127,
"HR_bvp": 1.0349,
"bvp_at_bats": 18.0,
"combined": {
"H": 1.1104,
"BB": 1.0788,
"SO": 0.5158,
"HR": 1.347
}
},
{
"hitter": "Freddie Freeman",
"plate_appearances": 4.37,
"stand": "L",
"H_batter": 1.0925,
"H_platoon": 1.0351,
"H_bvp": 1.0242,
"BB_batter": 1.1407,
"BB_platoon": 0.9055,
"BB_bvp": 1.0,
"SO_batter": 0.7981,
"SO_platoon": 1.0454,
"SO_bvp": 0.9494,
"HR_batter": 0.8877,
"HR_platoon": 0.9622,
"HR_bvp": 1.15,
"bvp_at_bats": 16.0,
"combined": {
"H": 1.1582,
"BB": 1.0329,
"SO": 0.7921,
"HR": 0.9823
}
},
{
"hitter": "Teoscar Hern\u00e1ndez",
"plate_appearances": 4.156,
"stand": "R",
"H_batter": 1.0478,
"H_platoon": 1.0124,
"H_bvp": 0.9802,
"BB_batter": 0.9635,
"BB_platoon": 1.0619,
"BB_bvp": 1.0,
"SO_batter": 1.2206,
"SO_platoon": 0.9786,
"SO_bvp": 1.0375,
"HR_batter": 1.0845,
"HR_platoon": 1.0127,
"HR_bvp": 1.0124,
"bvp_at_bats": 24.0,
"combined": {
"H": 1.0398,
"BB": 1.0231,
"SO": 1.2393,
"HR": 1.1119
}
},
{
"hitter": "Will Smith",
"plate_appearances": 4.063,
"stand": "R",
"H_batter": 0.998,
"H_platoon": 1.0124,
"H_bvp": 0.9563,
"BB_batter": 1.2143,
"BB_platoon": 1.0619,
"BB_bvp": 1.0,
"SO_batter": 0.7902,
"SO_platoon": 0.9786,
"SO_bvp": 1.0627,
"HR_batter": 1.0873,
"HR_platoon": 1.0127,
"HR_bvp": 0.9563,
"bvp_at_bats": 7.0,
"combined": {
"H": 0.9662,
"BB": 1.2895,
"SO": 0.8218,
"HR": 1.053
}
},
{
"hitter": "Shohei Ohtani",
"plate_appearances": 4.21,
"stand": "L",
"H_batter": 1.0339,
"H_platoon": 1.0351,
"H_bvp": 0.9868,
"BB_batter": 1.4201,
"BB_platoon": 0.9055,
"BB_bvp": 1.0,
"SO_batter": 1.1004,
"SO_platoon": 1.0454,
"SO_bvp": 1.0214,
"HR_batter": 1.417,
"HR_platoon": 0.9622,
"HR_bvp": 0.922,
"bvp_at_bats": 15.0,
"combined": {
"H": 1.0561,
"BB": 1.2859,
"SO": 1.175,
"HR": 1.2571
}
},
{
"hitter": "Miguel Rojas",
"plate_appearances": 3.46,
"stand": "R",
"H_batter": 1.0395,
"H_platoon": 1.0124,
"H_bvp": 0.9779,
"BB_batter": 0.7376,
"BB_platoon": 1.0619,
"BB_bvp": 1.0,
"SO_batter": 0.5807,
"SO_platoon": 0.9786,
"SO_bvp": 0.9722,
"HR_batter": 0.7691,
"HR_platoon": 1.0127,
"HR_bvp": 0.9316,
"bvp_at_bats": 13.0,
"combined": {
"H": 1.0291,
"BB": 0.7833,
"SO": 0.5525,
"HR": 0.7256
}
},
{
"hitter": "Andy Pages",
"plate_appearances": 3.832,
"stand": "R",
"H_batter": 1.0518,
"H_platoon": 1.0124,
"H_bvp": 0.9667,
"BB_batter": 0.9971,
"BB_platoon": 1.0619,
"BB_bvp": 1.0,
"SO_batter": 0.9032,
"SO_platoon": 0.9786,
"SO_bvp": 0.9667,
"HR_batter": 1.2127,
"HR_platoon": 1.0127,
"HR_bvp": 0.9667,
"bvp_at_bats": 5.0,
"combined": {
"H": 1.0294,
"BB": 1.0588,
"SO": 0.8544,
"HR": 1.1872
}
},
{
"hitter": "Kyle Tucker",
"plate_appearances": 3.888,
"stand": "L",
"H_batter": 0.9674,
"H_platoon": 1.0351,
"H_bvp": 0.9607,
"BB_batter": 1.286,
"BB_platoon": 0.9055,
"BB_bvp": 1.0,
"SO_batter": 0.7797,
"SO_platoon": 1.0454,
"SO_bvp": 1.0907,
"HR_batter": 0.9602,
"HR_platoon": 0.9622,
"HR_bvp": 0.9351,
"bvp_at_bats": 12.0,
"combined": {
"H": 0.962,
"BB": 1.1645,
"SO": 0.889,
"HR": 0.8639
}
},
{
"hitter": "Enrique Hern\u00e1ndez",
"plate_appearances": 3.454,
"stand": "R",
"H_batter": 0.9933,
"H_platoon": 1.0124,
"H_bvp": 0.985,
"BB_batter": 0.8776,
"BB_platoon": 1.0619,
"BB_bvp": 1.0,
"SO_batter": 1.1987,
"SO_platoon": 0.9786,
"SO_bvp": 1.0363,
"HR_batter": 1.1001,
"HR_platoon": 1.0127,
"HR_bvp": 0.9351,
"bvp_at_bats": 12.0,
"combined": {
"H": 0.9905,
"BB": 0.9319,
"SO": 1.2156,
"HR": 1.0418
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 22.141
},
"player_attribution": {
"home_runs": {
"model_delta": -0.3334,
"weighted_stage_delta": -0.1467
},
"away_runs": {
"model_delta": -0.7691,
"weighted_stage_delta": -0.5999
},
"home_win": {
"model_delta": 0.0888,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.5215,
"market_implied": 1.7109,
"market_multiplier": 1.1245,
"weight": 0.4659,
"effective_multiplier": 1.0562,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.5101,
"model_p_over": 0.4493,
"implied_multiplier": 1.1245
}
]
},
"H": {
"model": 4.087,
"market_implied": 4.5693,
"market_multiplier": 1.118,
"weight": 0.4659,
"effective_multiplier": 1.0533,
"lines": [
4.5
],
"books": 3,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 4.5,
"books": 3,
"market_p_over": 0.481,
"model_p_over": 0.3882,
"implied_multiplier": 1.118
}
]
},
"OUTS": {
"model": 17.208,
"market_implied": 18.5244,
"market_multiplier": 1.0765,
"weight": 0.5348,
"effective_multiplier": 1.0402,
"lines": [
17.5,
18.5
],
"books": 7,
"props": [
{
"market": "pitcher_outs",
"point": 17.5,
"books": 3,
"market_p_over": 0.5885,
"model_p_over": 0.4149,
"implied_multiplier": 1.1322
},
{
"market": "pitcher_outs",
"point": 18.5,
"books": 4,
"market_p_over": 0.3624,
"model_p_over": 0.3161,
"implied_multiplier": 1.0365
}
]
},
"SO": {
"model": 6.8704,
"market_implied": 7.1409,
"market_multiplier": 1.0394,
"weight": 0.537,
"effective_multiplier": 1.021,
"lines": [
6.5,
7.5
],
"books": 7,
"props": [
{
"market": "pitcher_strikeouts",
"point": 6.5,
"books": 3,
"market_p_over": 0.5576,
"model_p_over": 0.5308,
"implied_multiplier": 1.0261
},
{
"market": "pitcher_strikeouts",
"point": 7.5,
"books": 4,
"market_p_over": 0.4326,
"model_p_over": 0.382,
"implied_multiplier": 1.0495
}
]
},
"BB": {
"model": 0.8557,
"market_implied": 1.4282,
"market_multiplier": 1.6691,
"weight": 0.537,
"effective_multiplier": 1.3166,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.4179,
"model_p_over": 0.2114,
"implied_multiplier": 1.6691
}
]
}
},
"expected_before": {
"SO": 6.8704,
"H": 4.087,
"BB": 0.8557,
"ER": 1.5215,
"IP": 5.736,
"ERA": 2.387
},
"expected_after": {
"SO": 7.0144,
"H": 4.305,
"BB": 1.1266,
"ER": 1.607,
"IP": 5.9666,
"ERA": 2.424
},
"line": {
"IP": 6.1,
"H": 4,
"ER": 3,
"BB": 1,
"SO": 6,
"HR": 1
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 1,
"SO": 7,
"HR": 1
},
"stats": {
"IP": 6.0,
"H": 6,
"R": 3,
"ER": 2,
"BB": 1,
"SO": 5,
"HR": 1,
"BF": 28,
"Pitches": 99
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "519242",
"player_name": "Chris Sale",
"position": "Starter",
"team": "ATL",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.0,
"delta": -0.3333,
"percent_delta": -0.0526,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.2008,
"offense_edge": 0.0201,
"opponent_offense_edge": 0.1012,
"defense_strength": 0.1619,
"opponent_defense_weakness": -0.2123,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.01,
"strikeout": 0.9859
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8395,
"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
},
"quality_score": 0.7139,
"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": 4.0,
"factor": 0.9393,
"adjusted": 4
},
"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
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 6.0,
"H": 6,
"R": 3,
"ER": 2,
"BB": 1,
"SO": 5,
"HR": 1,
"BF": 28,
"Pitches": 99,
"source": "play_by_play_realizer_v1",
"predicted_R": 3,
"predicted_ER": 2
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20261006_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261006 | 20261006_MIL@SD | away | Dustin May | Dustin May | True | 4.0 | 3.0 | -3 | 5 | 2 | -3 | 8/3 | 2/2 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.695652173913044,
"WHIP": 1.3180778032036613,
"IP": 145.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 4.699,
"recent_avg_IP": 3.4,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.172,
"sample_weight": 1.0,
"run_prevention_factor": 1.0146,
"strikeout_factor": 0.9937,
"walk_factor": 0.978,
"homer_factor": 1.0567,
"regression_flag": "neutral",
"k_percent": 23.2,
"bb_percent": 8.1,
"woba": 0.317,
"xwoba": 0.323,
"barrel_percent": 7.8,
"hard_hit_percent": 44.3,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669160",
"report_date": "20261006",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.0,
"ER": 9.0,
"R": 9.0,
"H": 17.0,
"BB": 5.0,
"SO": 22.0,
"HR": 4.0,
"BF": 74.0,
"Pitches": 304.0
},
"per_game": {
"IP": 3.1,
"ER": 1.8,
"R": 1.8,
"H": 3.4,
"BB": 1.0,
"SO": 4.4,
"HR": 0.8,
"BF": 14.8,
"Pitches": 60.8
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.2941,
"ER_per_IP": 0.52941,
"H_per_IP": 1.0,
"BB_per_IP": 0.29412,
"SO_per_IP": 1.29412,
"HR_per_IP": 0.23529
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 36.2,
"ER": 23.0,
"R": 23.0,
"H": 37.0,
"BB": 15.0,
"SO": 38.0,
"HR": 7.0,
"BF": 162.0,
"Pitches": 648.0
},
"per_game": {
"IP": 3.2,
"ER": 2.3,
"R": 2.3,
"H": 3.7,
"BB": 1.5,
"SO": 3.8,
"HR": 0.7,
"BF": 16.2,
"Pitches": 64.8
},
"rates": {
"ERA": 5.6455,
"WHIP": 1.4182,
"ER_per_IP": 0.62727,
"H_per_IP": 1.00909,
"BB_per_IP": 0.40909,
"SO_per_IP": 1.03636,
"HR_per_IP": 0.19091
}
},
"season": {
"games": 31,
"totals": {
"IP": 145.2,
"ER": 76.0,
"R": 79.0,
"H": 142.0,
"BB": 50.0,
"SO": 144.0,
"HR": 14.0,
"BF": 621.0,
"Pitches": 2399.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4516,
"R": 2.5484,
"H": 4.5806,
"BB": 1.6129,
"SO": 4.6452,
"HR": 0.4516,
"BF": 20.0323,
"Pitches": 77.3871
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.3181,
"ER_per_IP": 0.52174,
"H_per_IP": 0.97483,
"BB_per_IP": 0.34325,
"SO_per_IP": 0.98856,
"HR_per_IP": 0.09611
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 2.111,
"predicted_H": 3.788,
"predicted_BB": 1.328,
"predicted_SO": 4.235,
"predicted_HR": 0.706,
"predicted_ERA": 4.9978,
"predicted_WHIP": 1.3455
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.111,
"final": 2.883,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.788,
"final": 3.8746,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.328,
"final": 1.6026,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 4.235,
"final": 2.9129,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.706,
"final": 0.8262,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9978,
"final": 4.9978,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3455,
"final": 1.3455,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 36.2,
"ER": 23,
"H": 37,
"BB": 15,
"SO": 38,
"HR": 7,
"ERA": 5.645454545454545,
"WHIP": 1.418181818181818,
"K9": 9.327272727272726,
"HR9": 1.718181818181818,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-26T00:00:00"
},
"recent_form_boost": 1.1309337947914393,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.9871,
"BB": 0.3194,
"SO": 1.137,
"HR": 0.1637
},
"source": "recent_role_blend",
"tto_penalty": 0.9965,
"role_avg_IP": 4.699,
"recent_avg_IP": 3.4
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0133,
"run_prevention": 0.9715,
"strikeout": 1.0064
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 0.9937,
"walk_factor": 0.978,
"homer_factor": 1.0567,
"run_prevention_factor": 1.0146,
"quality_score": -0.172
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0089,
"BB": 0.9815,
"SO": 0.9569,
"HR": 1.011
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 0.9972,
"SO": 0.9847,
"HR": 1.0
},
"earned_run_factor": 0.9995,
"before": {
"H": 3.791,
"BB": 1.227,
"SO": 4.525,
"HR": 0.627,
"ER": 2.011,
"ERA": 4.517
},
"after": {
"H": 3.791,
"BB": 1.2236,
"SO": 4.4558,
"HR": 0.627,
"ER": 2.01,
"ERA": 4.516
},
"by_hitter": [
{
"hitter": "Fernando Tatis Jr.",
"plate_appearances": 4.504,
"stand": "R",
"H_batter": 1.0967,
"H_platoon": 0.9909,
"H_bvp": 0.987,
"BB_batter": 1.0076,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.8544,
"SO_platoon": 1.0158,
"SO_bvp": 1.013,
"HR_batter": 1.138,
"HR_platoon": 0.9906,
"HR_bvp": 0.9855,
"bvp_at_bats": 29.0,
"combined": {
"H": 1.0726,
"BB": 0.9616,
"SO": 0.8792,
"HR": 1.111
}
},
{
"hitter": "Jackson Merrill",
"plate_appearances": 4.454,
"stand": "L",
"H_batter": 1.0482,
"H_platoon": 0.9905,
"H_bvp": 0.9389,
"BB_batter": 0.7579,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.0867,
"SO_platoon": 0.9877,
"SO_bvp": 1.0306,
"HR_batter": 1.1881,
"HR_platoon": 1.0102,
"HR_bvp": 0.9389,
"bvp_at_bats": 10.0,
"combined": {
"H": 0.9748,
"BB": 0.7773,
"SO": 1.1062,
"HR": 1.1269
}
},
{
"hitter": "Manny Machado",
"plate_appearances": 4.24,
"stand": "R",
"H_batter": 0.9334,
"H_platoon": 0.9909,
"H_bvp": 1.0146,
"BB_batter": 1.2775,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.9492,
"SO_platoon": 1.0158,
"SO_bvp": 0.9821,
"HR_batter": 1.341,
"HR_platoon": 0.9906,
"HR_bvp": 1.0142,
"bvp_at_bats": 42.0,
"combined": {
"H": 0.9384,
"BB": 1.2191,
"SO": 0.9469,
"HR": 1.3473
}
},
{
"hitter": "Ty France",
"plate_appearances": 4.286,
"stand": "R",
"H_batter": 1.1035,
"H_platoon": 0.9909,
"H_bvp": 1.0248,
"BB_batter": 0.86,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.9702,
"SO_platoon": 1.0158,
"SO_bvp": 1.0101,
"HR_batter": 1.2252,
"HR_platoon": 0.9906,
"HR_bvp": 1.0798,
"bvp_at_bats": 12.0,
"combined": {
"H": 1.1206,
"BB": 0.8207,
"SO": 0.9955,
"HR": 1.3105
}
},
{
"hitter": "Ethan Salas",
"plate_appearances": 3.614,
"stand": "L",
"H_batter": 1.0087,
"H_platoon": 0.9905,
"H_bvp": 1.0,
"BB_batter": 0.8026,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.0444,
"SO_platoon": 0.9877,
"SO_bvp": 1.0,
"HR_batter": 1.0686,
"HR_platoon": 1.0102,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9991,
"BB": 0.8231,
"SO": 1.0316,
"HR": 1.0795
}
},
{
"hitter": "Xander Bogaerts",
"plate_appearances": 3.851,
"stand": "R",
"H_batter": 0.9583,
"H_platoon": 0.9909,
"H_bvp": 0.9873,
"BB_batter": 1.3835,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.823,
"SO_platoon": 1.0158,
"SO_bvp": 0.9969,
"HR_batter": 0.814,
"HR_platoon": 0.9906,
"HR_bvp": 1.1108,
"bvp_at_bats": 16.0,
"combined": {
"H": 0.9375,
"BB": 1.3203,
"SO": 0.8334,
"HR": 0.8957
}
},
{
"hitter": "Dustin Harris",
"plate_appearances": 4.084,
"stand": "L",
"H_batter": 1.0317,
"H_platoon": 0.9905,
"H_bvp": 1.0,
"BB_batter": 0.8419,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 0.6914,
"SO_platoon": 0.9877,
"SO_bvp": 1.0,
"HR_batter": 0.6142,
"HR_platoon": 1.0102,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0219,
"BB": 0.8635,
"SO": 0.6829,
"HR": 0.6205
}
},
{
"hitter": "Samad Taylor",
"plate_appearances": 3.636,
"stand": "R",
"H_batter": 1.0648,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.103,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 1.1522,
"SO_platoon": 1.0158,
"SO_bvp": 1.0,
"HR_batter": 0.7436,
"HR_platoon": 0.9906,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0551,
"BB": 1.0526,
"SO": 1.1704,
"HR": 0.7366
}
},
{
"hitter": "Jake Cronenworth",
"plate_appearances": 3.733,
"stand": "L",
"H_batter": 0.958,
"H_platoon": 0.9905,
"H_bvp": 0.9996,
"BB_batter": 1.0017,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.0259,
"SO_platoon": 0.9877,
"SO_bvp": 0.9734,
"HR_batter": 0.701,
"HR_platoon": 1.0102,
"HR_bvp": 1.0929,
"bvp_at_bats": 21.0,
"combined": {
"H": 0.9485,
"BB": 1.0273,
"SO": 0.9863,
"HR": 0.7739
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 17.036
},
"player_attribution": {
"home_runs": {
"model_delta": 0.1451,
"weighted_stage_delta": 0.0638
},
"away_runs": {
"model_delta": -0.0943,
"weighted_stage_delta": -0.0736
},
"home_win": {
"model_delta": 0.0252,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 4.1,
"H": 4,
"R": 4,
"ER": 4,
"BB": 2,
"SO": 1,
"HR": 1
},
"stats": {
"IP": 4.0,
"H": 8,
"R": 5,
"ER": 5,
"BB": 2,
"SO": 4,
"HR": 0,
"BF": 22,
"Pitches": 89
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 8,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 4.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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.1938,
"offense_edge": 0.1441,
"opponent_offense_edge": -0.0072,
"defense_strength": 0.1767,
"opponent_defense_weakness": -0.0679,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0133,
"run_prevention": 0.9715,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 581.0,
"k_percent": 23.2,
"bb_percent": 8.1,
"woba": 0.317,
"xwoba": 0.323,
"sweet_spot_percent": 36.1,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 44.3,
"avg_best_speed": 79.2854,
"avg_hyper_speed": 94.6495,
"whiff_percent": 23.0,
"swing_percent": 47.6
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3062,
"command_and_miss": 0.0157,
"regression_edge": -0.1714,
"xwoba_edge": -0.3143,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.9143,
"whiff_edge": -0.3143,
"bb_edge": 0.275,
"pitch_design_score": 0.1569
},
"quality_score": -0.172,
"sample_weight": 1.0,
"run_prevention_factor": 1.0146,
"strikeout_factor": 0.9937,
"walk_factor": 0.978,
"homer_factor": 1.0567,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669160",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0146,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0146,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.978,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0567,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9937,
"adjusted": 5
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 4.0,
"H": 8,
"R": 5,
"ER": 5,
"BB": 2,
"SO": 4,
"HR": 0,
"BF": 22,
"Pitches": 89,
"source": "play_by_play_realizer_v1",
"predicted_R": 5,
"predicted_ER": 5
}
},
"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 5",
"detail": "Actual minus predicted hits was -5."
}
],
"provenance": {
"prediction": "output/games/20261006_MIL@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"
}
} |
| 20261006 | 20261006_MIL@SD | home | Nick Pivetta | Nick Pivetta | True | 4.0 | 4.1 | 1 | 3 | 2 | -1 | 4/5 | 1/0 | 2/4 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 2.8421052631578947,
"WHIP": 1.0526315789473684,
"IP": 38.0,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 4.222,
"recent_avg_IP": 4.4,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1561,
"sample_weight": 0.45,
"run_prevention_factor": 0.9867,
"strikeout_factor": 1.0141,
"walk_factor": 0.9685,
"homer_factor": 1.0105,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 5.7,
"woba": 0.249,
"xwoba": 0.277,
"barrel_percent": 10.1,
"hard_hit_percent": 38.2,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 28,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 38.0,
"season_ERA": 2.842,
"season_WHIP": 1.053,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "601713",
"report_date": "20261006",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 4.0,
"R": 4.0,
"H": 18.0,
"BB": 4.0,
"SO": 22.0,
"HR": 2.0,
"BF": 89.0,
"Pitches": 361.0
},
"per_game": {
"IP": 4.1,
"ER": 0.8,
"R": 0.8,
"H": 3.6,
"BB": 0.8,
"SO": 4.4,
"HR": 0.4,
"BF": 17.8,
"Pitches": 72.2
},
"rates": {
"ERA": 1.6364,
"WHIP": 1.0,
"ER_per_IP": 0.18182,
"H_per_IP": 0.81818,
"BB_per_IP": 0.18182,
"SO_per_IP": 1.0,
"HR_per_IP": 0.09091
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 38.0,
"ER": 12.0,
"R": 12.0,
"H": 30.0,
"BB": 10.0,
"SO": 46.0,
"HR": 2.0,
"BF": 155.0,
"Pitches": 644.0
},
"per_game": {
"IP": 4.1,
"ER": 1.3333,
"R": 1.3333,
"H": 3.3333,
"BB": 1.1111,
"SO": 5.1111,
"HR": 0.2222,
"BF": 17.2222,
"Pitches": 71.5556
},
"rates": {
"ERA": 2.8421,
"WHIP": 1.0526,
"ER_per_IP": 0.31579,
"H_per_IP": 0.78947,
"BB_per_IP": 0.26316,
"SO_per_IP": 1.21053,
"HR_per_IP": 0.05263
}
},
"season": {
"games": 9,
"totals": {
"IP": 38.0,
"ER": 12.0,
"R": 12.0,
"H": 30.0,
"BB": 10.0,
"SO": 46.0,
"HR": 2.0,
"BF": 155.0,
"Pitches": 644.0
},
"per_game": {
"IP": 4.1,
"ER": 1.3333,
"R": 1.3333,
"H": 3.3333,
"BB": 1.1111,
"SO": 5.1111,
"HR": 0.2222,
"BF": 17.2222,
"Pitches": 71.5556
},
"rates": {
"ERA": 2.8421,
"WHIP": 1.0526,
"ER_per_IP": 0.31579,
"H_per_IP": 0.78947,
"BB_per_IP": 0.26316,
"SO_per_IP": 1.21053,
"HR_per_IP": 0.05263
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.523,
"predicted_H": 3.979,
"predicted_BB": 1.247,
"predicted_SO": 4.7,
"predicted_HR": 0.465,
"predicted_ERA": 2.9981,
"predicted_WHIP": 1.1433
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.523,
"final": 1.7619,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.979,
"final": 3.4886,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.247,
"final": 1.1233,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.7,
"final": 5.852,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.465,
"final": 0.2321,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9981,
"final": 2.9981,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1433,
"final": 1.1433,
"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": 38.0,
"ER": 12,
"H": 30,
"BB": 10,
"SO": 46,
"HR": 2,
"ERA": 2.8421052631578947,
"WHIP": 1.0526315789473684,
"K9": 10.894736842105264,
"HR9": 0.47368421052631576,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-09-30T00:00:00"
},
"recent_form_boost": 0.8064182445522049,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.8053,
"BB": 0.2184,
"SO": 1.0947,
"HR": 0.0737
},
"source": "recent_role_blend",
"tto_penalty": 0.9965,
"role_avg_IP": 4.222,
"recent_avg_IP": 4.4
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 0.9885,
"run_prevention": 1.026,
"strikeout": 0.9827
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.0141,
"walk_factor": 0.9685,
"homer_factor": 1.0105,
"run_prevention_factor": 0.9867,
"quality_score": 0.1561
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0251,
"BB": 1.1521,
"SO": 1.0041,
"HR": 0.9442
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0215,
"SO": 1.0014,
"HR": 1.0
},
"earned_run_factor": 1.0039,
"before": {
"H": 3.266,
"BB": 0.886,
"SO": 4.254,
"HR": 0.297,
"ER": 0.978,
"ERA": 2.253
},
"after": {
"H": 3.266,
"BB": 0.905,
"SO": 4.26,
"HR": 0.297,
"ER": 0.9818,
"ERA": 2.261
},
"by_hitter": [
{
"hitter": "Jackson Chourio",
"plate_appearances": 4.56,
"stand": "R",
"H_batter": 1.1127,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.9492,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 1.0401,
"SO_platoon": 1.0158,
"SO_bvp": 1.0,
"HR_batter": 1.3325,
"HR_platoon": 0.9906,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.1026,
"BB": 0.9058,
"SO": 1.0565,
"HR": 1.32
}
},
{
"hitter": "Jake Bauers",
"plate_appearances": 4.09,
"stand": "L",
"H_batter": 1.0043,
"H_platoon": 0.9905,
"H_bvp": 1.0,
"BB_batter": 1.6479,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.2047,
"SO_platoon": 0.9877,
"SO_bvp": 1.0,
"HR_batter": 1.2993,
"HR_platoon": 1.0102,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9948,
"BB": 1.6901,
"SO": 1.1899,
"HR": 1.3126
}
},
{
"hitter": "William Contreras",
"plate_appearances": 4.268,
"stand": "R",
"H_batter": 1.0445,
"H_platoon": 0.9909,
"H_bvp": 0.9956,
"BB_batter": 1.0775,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.6832,
"SO_platoon": 1.0158,
"SO_bvp": 1.1303,
"HR_batter": 0.9786,
"HR_platoon": 0.9906,
"HR_bvp": 0.9282,
"bvp_at_bats": 13.0,
"combined": {
"H": 1.0304,
"BB": 1.0283,
"SO": 0.7844,
"HR": 0.8998
}
},
{
"hitter": "Brice Turang",
"plate_appearances": 4.091,
"stand": "L",
"H_batter": 1.0411,
"H_platoon": 0.9905,
"H_bvp": 0.9782,
"BB_batter": 1.4193,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.1127,
"SO_platoon": 0.9877,
"SO_bvp": 1.0248,
"HR_batter": 1.0221,
"HR_platoon": 1.0102,
"HR_bvp": 0.9515,
"bvp_at_bats": 6.0,
"combined": {
"H": 1.0087,
"BB": 1.4556,
"SO": 1.1263,
"HR": 0.9824
}
},
{
"hitter": "Christian Yelich",
"plate_appearances": 4.098,
"stand": "L",
"H_batter": 0.9687,
"H_platoon": 0.9905,
"H_bvp": 1.0525,
"BB_batter": 1.1363,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.1861,
"SO_platoon": 0.9877,
"SO_bvp": 0.958,
"HR_batter": 0.8691,
"HR_platoon": 1.0102,
"HR_bvp": 1.15,
"bvp_at_bats": 18.0,
"combined": {
"H": 1.0099,
"BB": 1.1654,
"SO": 1.1223,
"HR": 1.0097
}
},
{
"hitter": "Garrett Mitchell",
"plate_appearances": 3.907,
"stand": "L",
"H_batter": 1.0186,
"H_platoon": 0.9905,
"H_bvp": 1.0,
"BB_batter": 1.1922,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 1.3844,
"SO_platoon": 0.9877,
"SO_bvp": 1.0,
"HR_batter": 0.7519,
"HR_platoon": 1.0102,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0089,
"BB": 1.2227,
"SO": 1.3674,
"HR": 0.7596
}
},
{
"hitter": "Cooper Pratt",
"plate_appearances": 3.804,
"stand": "R",
"H_batter": 1.0318,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.0361,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.852,
"SO_platoon": 1.0158,
"SO_bvp": 1.0,
"HR_batter": 0.6833,
"HR_platoon": 0.9906,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0224,
"BB": 0.9888,
"SO": 0.8655,
"HR": 0.6769
}
},
{
"hitter": "Sal Frelick",
"plate_appearances": 3.72,
"stand": "L",
"H_batter": 0.9884,
"H_platoon": 0.9905,
"H_bvp": 1.0284,
"BB_batter": 0.9532,
"BB_platoon": 1.0256,
"BB_bvp": 1.0,
"SO_batter": 0.531,
"SO_platoon": 0.9877,
"SO_bvp": 1.023,
"HR_batter": 0.6196,
"HR_platoon": 1.0102,
"HR_bvp": 0.9667,
"bvp_at_bats": 5.0,
"combined": {
"H": 1.0068,
"BB": 0.9776,
"SO": 0.5365,
"HR": 0.6051
}
},
{
"hitter": "Joey Ortiz",
"plate_appearances": 3.789,
"stand": "R",
"H_batter": 1.0391,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.9716,
"BB_platoon": 0.9543,
"BB_bvp": 1.0,
"SO_batter": 0.9366,
"SO_platoon": 1.0158,
"SO_bvp": 1.0,
"HR_batter": 0.832,
"HR_platoon": 0.9906,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0296,
"BB": 0.9272,
"SO": 0.9514,
"HR": 0.8242
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 15.876
},
"player_attribution": {
"home_runs": {
"model_delta": 0.2092,
"weighted_stage_delta": 0.092
},
"away_runs": {
"model_delta": -0.2083,
"weighted_stage_delta": -0.1624
},
"home_win": {
"model_delta": 0.0038,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 5.0,
"H": 3,
"R": 2,
"ER": 2,
"BB": 1,
"SO": 7,
"HR": 0
},
"stats": {
"IP": 4.0,
"H": 4,
"R": 3,
"ER": 3,
"BB": 1,
"SO": 2,
"HR": 0,
"BF": 19,
"Pitches": 69
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "601713",
"player_name": "Nick Pivetta",
"position": "Starter",
"team": "SD",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 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
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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
}
},
{
"index": 8,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 2.0,
"delta": -5.0,
"percent_delta": -0.7143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 2.0,
"delta": -5.0,
"percent_delta": -0.7143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 9,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 2.0,
"delta": -5.0,
"percent_delta": -0.7143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 2.0,
"delta": -5.0,
"percent_delta": -0.7143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.1938,
"offense_edge": -0.0072,
"opponent_offense_edge": 0.1441,
"defense_strength": 0.0679,
"opponent_defense_weakness": -0.1767,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9885,
"run_prevention": 1.026,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "601713",
"profile": {
"available": true,
"pitcher_id": "601713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 100.0,
"k_percent": 30.0,
"bb_percent": 5.7,
"woba": 0.249,
"xwoba": 0.277,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 38.2,
"avg_best_speed": 80.1978,
"avg_hyper_speed": 93.7991,
"whiff_percent": 22.8,
"swing_percent": 47.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5062,
"command_and_miss": 0.5629,
"regression_edge": -0.8,
"xwoba_edge": 1.0,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.3429,
"bb_edge": 0.875,
"pitch_design_score": -0.0365
},
"quality_score": 0.1561,
"sample_weight": 0.45,
"run_prevention_factor": 0.9867,
"strikeout_factor": 1.0141,
"walk_factor": 0.9685,
"homer_factor": 1.0105,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "601713",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.994,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.994,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9858,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0047,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0063,
"adjusted": 5
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 4.0,
"H": 4,
"R": 3,
"ER": 3,
"BB": 1,
"SO": 2,
"HR": 0,
"BF": 19,
"Pitches": 69,
"source": "play_by_play_realizer_v1",
"predicted_R": 3,
"predicted_ER": 3
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20261006_MIL@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"
}
} |
| 20261007 | 20261007_CLE@CHW | away | Daniel Espino | Daniel Espino | True | 4.0 | 0.2 | -10 | 3 | 1 | -2 | 3/2 | 1/1 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9375,
"WHIP": 1.3125,
"IP": 16.0,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 1.333,
"recent_avg_IP": 1.333,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3987,
"sample_weight": 0.45,
"run_prevention_factor": 0.9661,
"strikeout_factor": 1.072,
"walk_factor": 1.0144,
"homer_factor": 1.0168,
"regression_flag": "positive_pitcher_regression",
"k_percent": 38.5,
"bb_percent": 10.8,
"woba": 0.299,
"xwoba": 0.264,
"barrel_percent": 12.1,
"hard_hit_percent": 36.4,
"whiff_percent": 36.8
},
"espn_rank": {
"rank": 61,
"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": 3.304,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3979,
"prior_weight": 0.6021
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682982",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 3.0,
"BB": 4.0,
"SO": 5.0,
"HR": 2.0,
"BF": 18.0,
"Pitches": 81.0
},
"per_game": {
"IP": 0.2,
"ER": 0.8,
"R": 0.8,
"H": 0.6,
"BB": 0.8,
"SO": 1.0,
"HR": 0.4,
"BF": 3.6,
"Pitches": 16.2
},
"rates": {
"ERA": 9.0,
"WHIP": 1.75,
"ER_per_IP": 1.0,
"H_per_IP": 0.75,
"BB_per_IP": 1.0,
"SO_per_IP": 1.25,
"HR_per_IP": 0.5
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 11.0,
"ER": 4.0,
"R": 4.0,
"H": 8.0,
"BB": 5.0,
"SO": 16.0,
"HR": 2.0,
"BF": 45.0,
"Pitches": 184.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.4,
"H": 0.8,
"BB": 0.5,
"SO": 1.6,
"HR": 0.2,
"BF": 4.5,
"Pitches": 18.4
},
"rates": {
"ERA": 3.2727,
"WHIP": 1.1818,
"ER_per_IP": 0.36364,
"H_per_IP": 0.72727,
"BB_per_IP": 0.45455,
"SO_per_IP": 1.45455,
"HR_per_IP": 0.18182
}
},
"season": {
"games": 15,
"totals": {
"IP": 16.0,
"ER": 7.0,
"R": 7.0,
"H": 13.0,
"BB": 8.0,
"SO": 25.0,
"HR": 3.0,
"BF": 68.0,
"Pitches": 285.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4667,
"R": 0.4667,
"H": 0.8667,
"BB": 0.5333,
"SO": 1.6667,
"HR": 0.2,
"BF": 4.5333,
"Pitches": 19.0
},
"rates": {
"ERA": 3.9375,
"WHIP": 1.3125,
"ER_per_IP": 0.4375,
"H_per_IP": 0.8125,
"BB_per_IP": 0.5,
"SO_per_IP": 1.5625,
"HR_per_IP": 0.1875
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.691,
"predicted_H": 2.634,
"predicted_BB": 1.506,
"predicted_SO": 3.281,
"predicted_HR": 0.645,
"predicted_ERA": 5.1651,
"predicted_WHIP": 1.4046
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6044,
"form_weight": 0.3956,
"form_reliability": 0.3979,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.304,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3979,
"prior_weight": 0.6021
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.0,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.691,
"final": 3.0865,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 2.634,
"final": 2.2508,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.506,
"final": 2.409,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.281,
"final": 3.1112,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.645,
"final": 0.8596,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1651,
"final": 5.1651,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4046,
"final": 1.4046,
"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": 11.0,
"ER": 4,
"H": 8,
"BB": 5,
"SO": 16,
"HR": 2,
"ERA": 3.272727272727273,
"WHIP": 1.1818181818181819,
"K9": 13.090909090909092,
"HR9": 1.6363636363636365,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-03T00:00:00"
},
"recent_form_boost": 0.9473142792903005,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.9186,
"BB": 0.4311,
"SO": 0.9776,
"HR": 0.1621
},
"source": "recent_role_blend",
"tto_penalty": 0.9965,
"role_avg_IP": 1.333,
"recent_avg_IP": 1.333
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.304,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3979,
"prior_weight": 0.6021
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0003,
"run_prevention": 1.0014,
"strikeout": 0.9948
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.072,
"walk_factor": 1.0144,
"homer_factor": 1.0168,
"run_prevention_factor": 0.9661,
"quality_score": 0.3987
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 0.9847,
"BB": 1.1303,
"SO": 1.0849,
"HR": 1.1176
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0185,
"SO": 1.0289,
"HR": 1.0
},
"earned_run_factor": 1.0045,
"before": {
"H": 3.623,
"BB": 1.7,
"SO": 3.829,
"HR": 0.637,
"ER": 2.146,
"ERA": 4.905
},
"after": {
"H": 3.623,
"BB": 1.7314,
"SO": 3.9397,
"HR": 0.637,
"ER": 2.1558,
"ERA": 4.927
},
"by_hitter": [
{
"hitter": "Sam Antonacci",
"plate_appearances": 4.309,
"stand": "L",
"H_batter": 1.0476,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 0.9158,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.6895,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 0.6323,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.038,
"BB": 0.9382,
"SO": 0.6814,
"HR": 0.6394
}
},
{
"hitter": "Miguel Vargas",
"plate_appearances": 4.146,
"stand": "R",
"H_batter": 0.9707,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.5775,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.8172,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.3701,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9619,
"BB": 1.5081,
"SO": 0.8305,
"HR": 1.3585
}
},
{
"hitter": "Munetaka Murakami",
"plate_appearances": 4.212,
"stand": "L",
"H_batter": 0.893,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 1.717,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.5513,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 1.7354,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.8848,
"BB": 1.7591,
"SO": 1.5331,
"HR": 1.7548
}
},
{
"hitter": "Kyle Teel",
"plate_appearances": 4.007,
"stand": "L",
"H_batter": 0.9641,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 1.1695,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.4769,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 1.0117,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9552,
"BB": 1.1982,
"SO": 1.4596,
"HR": 1.023
}
},
{
"hitter": "Chase Meidroth",
"plate_appearances": 4.042,
"stand": "R",
"H_batter": 1.0733,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.0639,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.9915,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 0.8956,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0635,
"BB": 1.0171,
"SO": 1.0077,
"HR": 0.888
}
},
{
"hitter": "Tristan Peters",
"plate_appearances": 3.823,
"stand": "L",
"H_batter": 1.0467,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 0.8879,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.8499,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 0.8647,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0371,
"BB": 0.9097,
"SO": 0.84,
"HR": 0.8744
}
},
{
"hitter": "Braden Montgomery",
"plate_appearances": 3.832,
"stand": "L",
"H_batter": 0.9664,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 1.1131,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.9305,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 0.7121,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9575,
"BB": 1.1404,
"SO": 0.9196,
"HR": 0.7201
}
},
{
"hitter": "Randal Grichuk",
"plate_appearances": 3.72,
"stand": "R",
"H_batter": 1.0816,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.6379,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.9871,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.3762,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0718,
"BB": 0.6098,
"SO": 1.0032,
"HR": 1.3645
}
},
{
"hitter": "Colson Montgomery",
"plate_appearances": 3.593,
"stand": "L",
"H_batter": 0.8997,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 0.9788,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.5451,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 1.4413,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.8914,
"BB": 1.0028,
"SO": 1.527,
"HR": 1.4574
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 17.137
},
"player_attribution": {
"home_runs": {
"model_delta": 0.0,
"weighted_stage_delta": 0.0
},
"away_runs": {
"model_delta": 0.0,
"weighted_stage_delta": 0.0
},
"home_win": {
"model_delta": 0.0,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"SO": {
"model": 3.9397,
"market_implied": 1.6215,
"market_multiplier": 0.4116,
"weight": 0.5536,
"effective_multiplier": 0.6117,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_strikeouts",
"point": 1.5,
"books": 2,
"market_p_over": 0.482,
"model_p_over": 0.9039,
"implied_multiplier": 0.4116
}
]
}
},
"expected_before": {
"SO": 3.9397,
"H": 3.623,
"BB": 1.7314,
"ER": 2.1558,
"IP": 3.938,
"ERA": 4.927
},
"expected_after": {
"SO": 2.41,
"H": 3.623,
"BB": 1.7314,
"ER": 2.1558,
"IP": 3.938,
"ERA": 4.927
},
"line": {
"IP": 4.1,
"H": 2,
"ER": 4,
"BB": 3,
"SO": 3,
"HR": 1
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 4.2,
"H": 2,
"R": 4,
"ER": 4,
"BB": 3,
"SO": 3,
"HR": 1
},
"stats": {
"IP": 4.0,
"H": 3,
"R": 3,
"ER": 3,
"BB": 1,
"SO": 5,
"HR": 1,
"BF": 16,
"Pitches": 51
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "682982",
"player_name": "Daniel Espino",
"position": "Starter",
"team": "CLE",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 8,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"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_BB",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 9,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"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_BB",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.0062,
"offense_edge": -0.0676,
"opponent_offense_edge": 0.0672,
"defense_strength": 0.0902,
"opponent_defense_weakness": -0.0099,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0003,
"run_prevention": 1.0014,
"strikeout": 0.9948
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682982",
"profile": {
"available": true,
"pitcher_id": "682982",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 52.0,
"k_percent": 38.5,
"bb_percent": 10.8,
"woba": 0.299,
"xwoba": 0.264,
"sweet_spot_percent": 27.3,
"barrel_batted_rate": 12.1,
"hard_hit_percent": 36.4,
"avg_best_speed": 72.8972,
"avg_hyper_speed": 93.1724,
"whiff_percent": 36.8,
"swing_percent": 48.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6419,
"command_and_miss": 1.5543,
"regression_edge": 1.0,
"xwoba_edge": 1.3714,
"barrel_edge": -1.0889,
"hard_hit_edge": 0.2143,
"whiff_edge": 1.6571,
"bb_edge": -0.4,
"pitch_design_score": 0.28
},
"quality_score": 0.3987,
"sample_weight": 0.45,
"run_prevention_factor": 0.9661,
"strikeout_factor": 1.072,
"walk_factor": 1.0144,
"homer_factor": 1.0168,
"woba_minus_xwoba": 0.035,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "682982",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9847,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9847,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0065,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0076,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0324,
"adjusted": 4
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 4.0,
"H": 3,
"R": 3,
"ER": 3,
"BB": 1,
"SO": 5,
"HR": 1,
"BF": 16,
"Pitches": 51,
"source": "play_by_play_realizer_v1",
"predicted_R": 3,
"predicted_ER": 3
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20261007_CLE@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261007 | 20261007_CLE@CHW | home | Sean Newcomb | Sean Newcomb | True | 3.1 | 2.0 | -4 | 2 | 0 | -2 | 4/1 | 1/0 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9892857142857143,
"WHIP": 1.125,
"IP": 93.1,
"games_started": null,
"games_pitched": 60,
"role_avg_IP": 1.778,
"recent_avg_IP": 1.533,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0519,
"sample_weight": 1.0,
"run_prevention_factor": 1.0044,
"strikeout_factor": 0.9954,
"walk_factor": 0.998,
"homer_factor": 0.9958,
"regression_flag": "negative_pitcher_regression",
"k_percent": 22.6,
"bb_percent": 9.1,
"woba": 0.285,
"xwoba": 0.317,
"barrel_percent": 6.5,
"hard_hit_percent": 38.6,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 19,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 93.1,
"season_ERA": 2.989,
"season_WHIP": 1.125,
"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.272,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.794,
"prior_weight": 0.206
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656794",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 60,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.1,
"ER": 2.0,
"R": 2.0,
"H": 5.0,
"BB": 2.0,
"SO": 9.0,
"HR": 1.0,
"BF": 29.0,
"Pitches": 123.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4,
"R": 0.4,
"H": 1.0,
"BB": 0.4,
"SO": 1.8,
"HR": 0.2,
"BF": 5.8,
"Pitches": 24.6
},
"rates": {
"ERA": 2.4545,
"WHIP": 0.9545,
"ER_per_IP": 0.27273,
"H_per_IP": 0.68182,
"BB_per_IP": 0.27273,
"SO_per_IP": 1.22727,
"HR_per_IP": 0.13636
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 13.1,
"ER": 10.0,
"R": 10.0,
"H": 16.0,
"BB": 5.0,
"SO": 14.0,
"HR": 2.0,
"BF": 59.0,
"Pitches": 255.0
},
"per_game": {
"IP": 1.1,
"ER": 1.0,
"R": 1.0,
"H": 1.6,
"BB": 0.5,
"SO": 1.4,
"HR": 0.2,
"BF": 5.9,
"Pitches": 25.5
},
"rates": {
"ERA": 6.75,
"WHIP": 1.575,
"ER_per_IP": 0.75,
"H_per_IP": 1.2,
"BB_per_IP": 0.375,
"SO_per_IP": 1.05,
"HR_per_IP": 0.15
}
},
"season": {
"games": 60,
"totals": {
"IP": 93.1,
"ER": 31.0,
"R": 34.0,
"H": 72.0,
"BB": 33.0,
"SO": 87.0,
"HR": 4.0,
"BF": 380.0,
"Pitches": 1502.0
},
"per_game": {
"IP": 1.2,
"ER": 0.5167,
"R": 0.5667,
"H": 1.2,
"BB": 0.55,
"SO": 1.45,
"HR": 0.0667,
"BF": 6.3333,
"Pitches": 25.0333
},
"rates": {
"ERA": 2.9893,
"WHIP": 1.125,
"ER_per_IP": 0.33214,
"H_per_IP": 0.77143,
"BB_per_IP": 0.35357,
"SO_per_IP": 0.93214,
"HR_per_IP": 0.04286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.058,
"predicted_H": 2.057,
"predicted_BB": 0.766,
"predicted_SO": 2.44,
"predicted_HR": 0.291,
"predicted_ERA": 4.1802,
"predicted_WHIP": 1.2387
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.437,
"form_weight": 0.563,
"form_reliability": 0.794,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.272,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.794,
"prior_weight": 0.206
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.058,
"final": 1.0327,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.057,
"final": 2.4691,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.766,
"final": 0.8683,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 2.44,
"final": 4.4329,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.291,
"final": 0.1638,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1802,
"final": 4.1802,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2387,
"final": 1.2387,
"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": 11.2,
"ER": 9,
"H": 14,
"BB": 5,
"SO": 13,
"HR": 2,
"ERA": 6.942857142857142,
"WHIP": 1.6285714285714283,
"K9": 10.028571428571427,
"HR9": 1.5428571428571427,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-05T00:00:00"
},
"recent_form_boost": 1.110108438295943,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.7774,
"BB": 0.3944,
"SO": 1.0337,
"HR": 0.0937
},
"source": "recent_role_blend",
"tto_penalty": 0.9913,
"role_avg_IP": 1.778,
"recent_avg_IP": 1.533
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.272,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.794,
"prior_weight": 0.206
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0028,
"run_prevention": 0.9885,
"strikeout": 1.0052
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 0.9954,
"walk_factor": 0.998,
"homer_factor": 0.9958,
"run_prevention_factor": 1.0044,
"quality_score": -0.0519
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0338,
"BB": 0.9729,
"SO": 0.8578,
"HR": 0.9292
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 0.9959,
"SO": 0.9477,
"HR": 1.0
},
"earned_run_factor": 0.9988,
"before": {
"H": 2.561,
"BB": 1.299,
"SO": 3.462,
"HR": 0.306,
"ER": 1.188,
"ERA": 3.199
},
"after": {
"H": 2.561,
"BB": 1.2937,
"SO": 3.2809,
"HR": 0.306,
"ER": 1.1866,
"ERA": 3.196
},
"by_hitter": [
{
"hitter": "Steven Kwan",
"plate_appearances": 4.337,
"stand": "L",
"H_batter": 1.0542,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 1.4456,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 0.4575,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 0.4041,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0898,
"BB": 1.3151,
"SO": 0.4773,
"HR": 0.3875
}
},
{
"hitter": "Jos\u00e9 Ram\u00edrez",
"plate_appearances": 4.425,
"stand": "R",
"H_batter": 0.9608,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 1.247,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.6287,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 0.8179,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9726,
"BB": 1.3213,
"SO": 0.6148,
"HR": 0.8273
}
},
{
"hitter": "Chase DeLauter",
"plate_appearances": 4.267,
"stand": "L",
"H_batter": 1.0811,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 1.1566,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 0.6906,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 0.9682,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": 5.0,
"combined": {
"H": 1.1176,
"BB": 1.0522,
"SO": 0.7204,
"HR": 0.9284
}
},
{
"hitter": "Jo Adell",
"plate_appearances": 4.258,
"stand": "R",
"H_batter": 0.9999,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 0.6684,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 1.0875,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 1.0975,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0122,
"BB": 0.7082,
"SO": 1.0635,
"HR": 1.1101
}
},
{
"hitter": "Nathaniel Lowe",
"plate_appearances": 3.958,
"stand": "L",
"H_batter": 1.0058,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 0.9891,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 1.0415,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 1.1542,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0398,
"BB": 0.8998,
"SO": 1.0865,
"HR": 1.1068
}
},
{
"hitter": "Angel Mart\u00ednez",
"plate_appearances": 4.103,
"stand": "R",
"H_batter": 1.0356,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 0.505,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 1.0173,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 1.2547,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0483,
"BB": 0.5351,
"SO": 0.9948,
"HR": 1.2691
}
},
{
"hitter": "Travis Bazzana",
"plate_appearances": 3.86,
"stand": "L",
"H_batter": 0.9778,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 1.1858,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 0.94,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 0.9709,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0108,
"BB": 1.0787,
"SO": 0.9806,
"HR": 0.931
}
},
{
"hitter": "Patrick Bailey",
"plate_appearances": 3.748,
"stand": "R",
"H_batter": 0.959,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 0.9066,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 1.1924,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 0.9961,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9708,
"BB": 0.9606,
"SO": 1.166,
"HR": 1.0076
}
},
{
"hitter": "Brayan Rocchio",
"plate_appearances": 3.565,
"stand": "R",
"H_batter": 1.022,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 0.7819,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.6873,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 0.817,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0346,
"BB": 0.8285,
"SO": 0.6721,
"HR": 0.8264
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 13.883
},
"player_attribution": {
"home_runs": {
"model_delta": 0.0656,
"weighted_stage_delta": 0.0249
},
"away_runs": {
"model_delta": -0.0659,
"weighted_stage_delta": -0.0224
},
"home_win": {
"model_delta": 0.0363,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"SO": {
"model": 3.2809,
"market_implied": 1.2816,
"market_multiplier": 0.3906,
"weight": 0.5536,
"effective_multiplier": 0.5943,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_strikeouts",
"point": 1.5,
"books": 2,
"market_p_over": 0.3666,
"model_p_over": 0.8391,
"implied_multiplier": 0.3906
}
]
}
},
"expected_before": {
"SO": 3.2809,
"H": 2.561,
"BB": 1.2937,
"ER": 1.1866,
"IP": 3.341,
"ERA": 3.196
},
"expected_after": {
"SO": 1.9498,
"H": 2.561,
"BB": 1.2937,
"ER": 1.1866,
"IP": 3.341,
"ERA": 3.196
},
"line": {
"IP": 5.2,
"H": 3,
"ER": 1,
"BB": 1,
"SO": 7,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 5.0,
"H": 3,
"R": 1,
"ER": 1,
"BB": 1,
"SO": 7,
"HR": 0
},
"stats": {
"IP": 3.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 1,
"SO": 3,
"HR": 0,
"BF": 16,
"Pitches": 66
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "656794",
"player_name": "Sean Newcomb",
"position": "Starter",
"team": "CHW",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"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": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 8,
"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": 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
}
},
{
"index": 9,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 10,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 3.1,
"predicted_R": 2.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 3.1,
"delta": -1.9,
"percent_delta": -0.38,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_ER",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 11,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 3.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 3.1,
"delta": -2.5667,
"percent_delta": -0.4529,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_ER",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.0062,
"offense_edge": 0.0672,
"opponent_offense_edge": -0.0676,
"defense_strength": 0.0099,
"opponent_defense_weakness": -0.0902,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0028,
"run_prevention": 0.9885,
"strikeout": 1.0052
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656794",
"profile": {
"available": true,
"pitcher_id": "656794",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 339.0,
"k_percent": 22.6,
"bb_percent": 9.1,
"woba": 0.285,
"xwoba": 0.317,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 38.6,
"avg_best_speed": 77.7324,
"avg_hyper_speed": 94.0135,
"whiff_percent": 23.9,
"swing_percent": 45.9
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0834,
"command_and_miss": -0.0279,
"regression_edge": -0.9143,
"xwoba_edge": -0.1429,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.1,
"whiff_edge": -0.1857,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"quality_score": -0.0519,
"sample_weight": 1.0,
"run_prevention_factor": 1.0044,
"strikeout_factor": 0.9954,
"walk_factor": 0.998,
"homer_factor": 0.9958,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "656794",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0044,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0044,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.998,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9958,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9954,
"adjusted": 4
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 3.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 1,
"SO": 3,
"HR": 0,
"BF": 16,
"Pitches": 66,
"source": "play_by_play_realizer_v1",
"predicted_R": 2,
"predicted_ER": 2
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20261007_CLE@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261007 | 20261007_LAD@ATL | away | Tyler Glasnow | Tyler Glasnow | True | 5.1 | 4.2 | -2 | 2 | 1 | -1 | 4/1 | 0/5 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.527027027027027,
"WHIP": 0.9459459459459459,
"IP": 74.0,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 5.692,
"recent_avg_IP": 5.867,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6422,
"sample_weight": 0.96,
"run_prevention_factor": 0.9454,
"strikeout_factor": 1.1031,
"walk_factor": 0.9904,
"homer_factor": 0.9846,
"regression_flag": "neutral",
"k_percent": 34.0,
"bb_percent": 8.7,
"woba": 0.245,
"xwoba": 0.263,
"barrel_percent": 8.5,
"hard_hit_percent": 38.4,
"whiff_percent": 32.1
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 74.0,
"season_ERA": 3.527,
"season_WHIP": 0.946,
"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": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607192",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 14.0,
"R": 14.0,
"H": 19.0,
"BB": 12.0,
"SO": 42.0,
"HR": 2.0,
"BF": 119.0,
"Pitches": 461.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 2.8,
"H": 3.8,
"BB": 2.4,
"SO": 8.4,
"HR": 0.4,
"BF": 23.8,
"Pitches": 92.2
},
"rates": {
"ERA": 4.2955,
"WHIP": 1.0568,
"ER_per_IP": 0.47727,
"H_per_IP": 0.64773,
"BB_per_IP": 0.40909,
"SO_per_IP": 1.43182,
"HR_per_IP": 0.06818
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 21.0,
"R": 21.0,
"H": 32.0,
"BB": 21.0,
"SO": 76.0,
"HR": 5.0,
"BF": 217.0,
"Pitches": 858.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.1,
"H": 3.2,
"BB": 2.1,
"SO": 7.6,
"HR": 0.5,
"BF": 21.7,
"Pitches": 85.8
},
"rates": {
"ERA": 3.375,
"WHIP": 0.9464,
"ER_per_IP": 0.375,
"H_per_IP": 0.57143,
"BB_per_IP": 0.375,
"SO_per_IP": 1.35714,
"HR_per_IP": 0.08929
}
},
"season": {
"games": 13,
"totals": {
"IP": 74.0,
"ER": 29.0,
"R": 29.0,
"H": 45.0,
"BB": 25.0,
"SO": 98.0,
"HR": 7.0,
"BF": 288.0,
"Pitches": 1149.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2308,
"R": 2.2308,
"H": 3.4615,
"BB": 1.9231,
"SO": 7.5385,
"HR": 0.5385,
"BF": 22.1538,
"Pitches": 88.3846
},
"rates": {
"ERA": 3.527,
"WHIP": 0.9459,
"ER_per_IP": 0.39189,
"H_per_IP": 0.60811,
"BB_per_IP": 0.33784,
"SO_per_IP": 1.32432,
"HR_per_IP": 0.09459
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.636,
"predicted_H": 4.204,
"predicted_BB": 2.242,
"predicted_SO": 7.388,
"predicted_HR": 0.584,
"predicted_ERA": 4.0432,
"predicted_WHIP": 1.0987
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.636,
"final": 2.8061,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.204,
"final": 4.1087,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.242,
"final": 3.0636,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.388,
"final": 6.7393,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.584,
"final": 0.3111,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0432,
"final": 4.0432,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0987,
"final": 1.0987,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 21,
"H": 32,
"BB": 21,
"SO": 76,
"HR": 5,
"ERA": 3.375,
"WHIP": 0.9464285714285714,
"K9": 12.214285714285714,
"HR9": 0.8035714285714286,
"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-24T00:00:00"
},
"recent_form_boost": 0.8628637296528454,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.6327,
"BB": 0.382,
"SO": 1.3909,
"HR": 0.0782
},
"source": "recent_role_blend",
"tto_penalty": 1.0043,
"role_avg_IP": 5.692,
"recent_avg_IP": 5.867
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0135,
"run_prevention": 0.9722,
"strikeout": 1.0043
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.1031,
"walk_factor": 0.9904,
"homer_factor": 0.9846,
"run_prevention_factor": 0.9454,
"quality_score": 0.6422
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0019,
"BB": 0.9279,
"SO": 1.0095,
"HR": 1.0864
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 0.9888,
"SO": 1.0033,
"HR": 1.0
},
"earned_run_factor": 0.9965,
"before": {
"H": 3.167,
"BB": 1.913,
"SO": 7.193,
"HR": 0.393,
"ER": 2.236,
"ERA": 3.856
},
"after": {
"H": 3.167,
"BB": 1.8916,
"SO": 7.2167,
"HR": 0.393,
"ER": 2.2281,
"ERA": 3.842
},
"by_hitter": [
{
"hitter": "Michael Harris II",
"plate_appearances": 4.532,
"stand": "L",
"H_batter": 1.167,
"H_platoon": 0.9908,
"H_bvp": 0.9877,
"BB_batter": 0.4787,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.8662,
"SO_platoon": 0.9883,
"SO_bvp": 1.0908,
"HR_batter": 1.273,
"HR_platoon": 1.0112,
"HR_bvp": 0.9429,
"bvp_at_bats": 10.0,
"combined": {
"H": 1.142,
"BB": 0.4904,
"SO": 0.9338,
"HR": 1.2138
}
},
{
"hitter": "Ronald Acu\u00f1a Jr.",
"plate_appearances": 4.313,
"stand": "R",
"H_batter": 0.999,
"H_platoon": 0.9909,
"H_bvp": 1.0153,
"BB_batter": 1.2488,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.9715,
"SO_platoon": 1.0163,
"SO_bvp": 1.0158,
"HR_batter": 1.2199,
"HR_platoon": 0.9915,
"HR_bvp": 0.9389,
"bvp_at_bats": 11.0,
"combined": {
"H": 1.0051,
"BB": 1.1939,
"SO": 1.0029,
"HR": 1.1356
}
},
{
"hitter": "Matt Olson",
"plate_appearances": 4.267,
"stand": "L",
"H_batter": 1.0085,
"H_platoon": 0.9908,
"H_bvp": 0.9623,
"BB_batter": 1.0364,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.1058,
"SO_platoon": 0.9883,
"SO_bvp": 0.977,
"HR_batter": 1.6435,
"HR_platoon": 1.0112,
"HR_bvp": 0.919,
"bvp_at_bats": 13.0,
"combined": {
"H": 0.9616,
"BB": 1.0618,
"SO": 1.0677,
"HR": 1.5273
}
},
{
"hitter": "Ozzie Albies",
"plate_appearances": 4.063,
"stand": "L",
"H_batter": 0.9916,
"H_platoon": 0.9908,
"H_bvp": 0.9645,
"BB_batter": 0.8603,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.7179,
"SO_platoon": 0.9883,
"SO_bvp": 1.043,
"HR_batter": 1.0882,
"HR_platoon": 1.0112,
"HR_bvp": 0.9389,
"bvp_at_bats": 10.0,
"combined": {
"H": 0.9476,
"BB": 0.8814,
"SO": 0.74,
"HR": 1.0332
}
},
{
"hitter": "Drake Baldwin",
"plate_appearances": 4.349,
"stand": "L",
"H_batter": 1.0712,
"H_platoon": 0.9908,
"H_bvp": 0.9952,
"BB_batter": 1.045,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.9601,
"SO_platoon": 0.9883,
"SO_bvp": 0.9978,
"HR_batter": 1.2094,
"HR_platoon": 1.0112,
"HR_bvp": 0.9667,
"bvp_at_bats": 5.0,
"combined": {
"H": 1.0563,
"BB": 1.0706,
"SO": 0.9468,
"HR": 1.1822
}
},
{
"hitter": "Mike Yastrzemski",
"plate_appearances": 3.963,
"stand": "L",
"H_batter": 0.9602,
"H_platoon": 0.9908,
"H_bvp": 0.9921,
"BB_batter": 1.0506,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.0736,
"SO_platoon": 0.9883,
"SO_bvp": 1.0422,
"HR_batter": 0.9749,
"HR_platoon": 1.0112,
"HR_bvp": 0.9613,
"bvp_at_bats": 5.0,
"combined": {
"H": 0.9439,
"BB": 1.0763,
"SO": 1.1058,
"HR": 0.9477
}
},
{
"hitter": "Mauricio Dub\u00f3n",
"plate_appearances": 4.0,
"stand": "R",
"H_batter": 1.0911,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.7271,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.5948,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 0.7314,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0812,
"BB": 0.6951,
"SO": 0.6045,
"HR": 0.7252
}
},
{
"hitter": "Austin Riley",
"plate_appearances": 3.72,
"stand": "R",
"H_batter": 0.9387,
"H_platoon": 0.9909,
"H_bvp": 0.9615,
"BB_batter": 0.9217,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.3765,
"SO_platoon": 1.0163,
"SO_bvp": 1.0761,
"HR_batter": 1.0094,
"HR_platoon": 0.9915,
"HR_bvp": 0.9351,
"bvp_at_bats": 12.0,
"combined": {
"H": 0.8943,
"BB": 0.8811,
"SO": 1.5054,
"HR": 0.9359
}
},
{
"hitter": "Sean Murphy",
"plate_appearances": 3.453,
"stand": "R",
"H_batter": 0.9583,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.0767,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.2454,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.0028,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9496,
"BB": 1.0293,
"SO": 1.2657,
"HR": 0.9943
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 20.74
},
"player_attribution": {
"home_runs": {
"model_delta": -0.7094,
"weighted_stage_delta": -0.2696
},
"away_runs": {
"model_delta": 0.4232,
"weighted_stage_delta": 0.1439
},
"home_win": {
"model_delta": -0.0955,
"weighted_stage_delta": -0.0
}
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 2.2281,
"market_implied": 1.7823,
"market_multiplier": 0.7999,
"weight": 0.4625,
"effective_multiplier": 0.9019,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 2,
"market_p_over": 0.5319,
"model_p_over": 0.6522,
"implied_multiplier": 0.7999
}
]
},
"H": {
"model": 3.167,
"market_implied": 3.9066,
"market_multiplier": 1.2335,
"weight": 0.4807,
"effective_multiplier": 1.1062,
"lines": [
3.5
],
"books": 4,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 3.5,
"books": 4,
"market_p_over": 0.5481,
"model_p_over": 0.3901,
"implied_multiplier": 1.2335
}
]
},
"OUTS": {
"model": 15.66,
"market_implied": 15.5554,
"market_multiplier": 0.9933,
"weight": 0.5268,
"effective_multiplier": 0.9965,
"lines": [
15.5
],
"books": 6,
"props": [
{
"market": "pitcher_outs",
"point": 15.5,
"books": 6,
"market_p_over": 0.4739,
"model_p_over": 0.4838,
"implied_multiplier": 0.9933
}
]
},
"SO": {
"model": 7.2167,
"market_implied": 6.5058,
"market_multiplier": 0.9015,
"weight": 0.5536,
"effective_multiplier": 0.9442,
"lines": [
6.5
],
"books": 7,
"props": [
{
"market": "pitcher_strikeouts",
"point": 6.5,
"books": 7,
"market_p_over": 0.4744,
"model_p_over": 0.5821,
"implied_multiplier": 0.9015
}
]
},
"BB": {
"model": 1.8916,
"market_implied": 1.7803,
"market_multiplier": 0.9412,
"weight": 0.5536,
"effective_multiplier": 0.967,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.5313,
"model_p_over": 0.5639,
"implied_multiplier": 0.9412
}
]
}
},
"expected_before": {
"SO": 7.2167,
"H": 3.167,
"BB": 1.8916,
"ER": 2.2281,
"IP": 5.22,
"ERA": 3.842
},
"expected_after": {
"SO": 6.8141,
"H": 3.5032,
"BB": 1.8291,
"ER": 2.0095,
"IP": 5.2016,
"ERA": 3.477
},
"line": {
"IP": 6.0,
"H": 4,
"ER": 3,
"BB": 4,
"SO": 6,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.0,
"H": 4,
"R": 3,
"ER": 3,
"BB": 4,
"SO": 7,
"HR": 0
},
"stats": {
"IP": 5.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 0,
"SO": 5,
"HR": 2,
"BF": 20,
"Pitches": 94
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "607192",
"player_name": "Tyler Glasnow",
"position": "Starter",
"team": "LAD",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 0.0,
"delta": -4.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 3,
"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": {
"metric": "predicted_BB",
"before": 4.0,
"after": 0.0,
"delta": -4.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 0.0,
"delta": -4.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 3,
"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": {
"metric": "predicted_BB",
"before": 4.0,
"after": 0.0,
"delta": -4.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.2008,
"offense_edge": 0.1022,
"opponent_offense_edge": 0.021,
"defense_strength": 0.2112,
"opponent_defense_weakness": -0.1609,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0135,
"run_prevention": 0.9722,
"strikeout": 1.0043
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607192",
"profile": {
"available": true,
"pitcher_id": "607192",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 240.0,
"k_percent": 34.0,
"bb_percent": 8.7,
"woba": 0.245,
"xwoba": 0.263,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 38.4,
"avg_best_speed": 80.9446,
"avg_hyper_speed": 93.9414,
"whiff_percent": 32.1,
"swing_percent": 42.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7516,
"command_and_miss": 1.135,
"regression_edge": -0.5143,
"xwoba_edge": 1.4,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.0714,
"whiff_edge": 0.9857,
"bb_edge": 0.125,
"pitch_design_score": 0.0556
},
"quality_score": 0.6422,
"sample_weight": 0.96,
"run_prevention_factor": 0.9454,
"strikeout_factor": 1.1031,
"walk_factor": 0.9904,
"homer_factor": 0.9846,
"woba_minus_xwoba": -0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607192",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9476,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9476,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9908,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9852,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.099,
"adjusted": 9
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 5.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 0,
"SO": 5,
"HR": 2,
"BF": 20,
"Pitches": 94,
"source": "play_by_play_realizer_v1",
"predicted_R": 2,
"predicted_ER": 2
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +5."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20261007_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261007 | 20261007_LAD@ATL | home | Tyler Mahle | Tyler Mahle | True | 5.0 | 6.1 | 4 | 3 | 1 | -2 | 6/3 | 2/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8653846153846154,
"WHIP": 1.2243589743589745,
"IP": 156.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.571,
"recent_avg_IP": 6.2,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0461,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.988,
"walk_factor": 0.966,
"homer_factor": 0.9832,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.311,
"xwoba": 0.306,
"barrel_percent": 6.8,
"hard_hit_percent": 37.1,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 22,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641816",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 8.0,
"R": 10.0,
"H": 25.0,
"BB": 5.0,
"SO": 22.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 475.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 2.0,
"H": 5.0,
"BB": 1.0,
"SO": 4.4,
"HR": 0.6,
"BF": 24.2,
"Pitches": 95.0
},
"rates": {
"ERA": 2.3226,
"WHIP": 0.9677,
"ER_per_IP": 0.25806,
"H_per_IP": 0.80645,
"BB_per_IP": 0.16129,
"SO_per_IP": 0.70968,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.1,
"ER": 13.0,
"R": 15.0,
"H": 49.0,
"BB": 10.0,
"SO": 54.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 919.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.5,
"H": 4.9,
"BB": 1.0,
"SO": 5.4,
"HR": 0.6,
"BF": 23.8,
"Pitches": 91.9
},
"rates": {
"ERA": 1.9076,
"WHIP": 0.962,
"ER_per_IP": 0.21196,
"H_per_IP": 0.79891,
"BB_per_IP": 0.16304,
"SO_per_IP": 0.88043,
"HR_per_IP": 0.09783
}
},
"season": {
"games": 28,
"totals": {
"IP": 156.0,
"ER": 67.0,
"R": 70.0,
"H": 144.0,
"BB": 47.0,
"SO": 143.0,
"HR": 20.0,
"BF": 642.0,
"Pitches": 2497.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3929,
"R": 2.5,
"H": 5.1429,
"BB": 1.6786,
"SO": 5.1071,
"HR": 0.7143,
"BF": 22.9286,
"Pitches": 89.1786
},
"rates": {
"ERA": 3.8654,
"WHIP": 1.2244,
"ER_per_IP": 0.42949,
"H_per_IP": 0.92308,
"BB_per_IP": 0.30128,
"SO_per_IP": 0.91667,
"HR_per_IP": 0.12821
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.895,
"predicted_H": 5.167,
"predicted_BB": 1.328,
"predicted_SO": 5.036,
"predicted_HR": 0.669,
"predicted_ERA": 2.8099,
"predicted_WHIP": 1.0699
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.895,
"final": 1.5245,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.167,
"final": 5.0979,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.328,
"final": 1.6062,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 5.036,
"final": 3.3651,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.669,
"final": 0.392,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8099,
"final": 2.8099,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0699,
"final": 1.0699,
"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": 61.1,
"ER": 13,
"H": 49,
"BB": 10,
"SO": 54,
"HR": 6,
"ERA": 1.9076086956521738,
"WHIP": 0.9619565217391304,
"K9": 7.923913043478261,
"HR9": 0.8804347826086956,
"games_pitched": 10,
"quality_starts": 8,
"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-30T00:00:00"
},
"recent_form_boost": 0.698170406671479,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.8508,
"BB": 0.2145,
"SO": 0.7883,
"HR": 0.1087
},
"source": "recent_role_blend",
"tto_penalty": 1.0057,
"role_avg_IP": 5.571,
"recent_avg_IP": 6.2
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 0.9927,
"run_prevention": 1.0103,
"strikeout": 0.9858
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 0.988,
"walk_factor": 0.966,
"homer_factor": 0.9832,
"run_prevention_factor": 0.9961,
"quality_score": 0.0461
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0136,
"BB": 1.1197,
"SO": 0.9381,
"HR": 1.1573
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0171,
"SO": 0.9779,
"HR": 1.0
},
"earned_run_factor": 1.0027,
"before": {
"H": 4.687,
"BB": 1.181,
"SO": 4.237,
"HR": 0.602,
"ER": 1.79,
"ERA": 2.977
},
"after": {
"H": 4.687,
"BB": 1.2012,
"SO": 4.1434,
"HR": 0.602,
"ER": 1.7949,
"ERA": 2.985
},
"by_hitter": [
{
"hitter": "Mookie Betts",
"plate_appearances": 4.281,
"stand": "R",
"H_batter": 1.0378,
"H_platoon": 0.9909,
"H_bvp": 0.973,
"BB_batter": 1.0085,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.5328,
"SO_platoon": 1.0163,
"SO_bvp": 1.0461,
"HR_batter": 1.2763,
"HR_platoon": 0.9915,
"HR_bvp": 0.9471,
"bvp_at_bats": 8.0,
"combined": {
"H": 1.0006,
"BB": 0.9641,
"SO": 0.5664,
"HR": 1.1985
}
},
{
"hitter": "Freddie Freeman",
"plate_appearances": 4.369,
"stand": "L",
"H_batter": 1.0916,
"H_platoon": 0.9908,
"H_bvp": 1.0492,
"BB_batter": 1.1483,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.7986,
"SO_platoon": 0.9883,
"SO_bvp": 0.9781,
"HR_batter": 0.9186,
"HR_platoon": 1.0112,
"HR_bvp": 1.0582,
"bvp_at_bats": 19.0,
"combined": {
"H": 1.1348,
"BB": 1.1764,
"SO": 0.772,
"HR": 0.9829
}
},
{
"hitter": "Will Smith",
"plate_appearances": 4.128,
"stand": "R",
"H_batter": 0.9987,
"H_platoon": 0.9909,
"H_bvp": 1.0153,
"BB_batter": 1.2029,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.8205,
"SO_platoon": 1.0163,
"SO_bvp": 0.9389,
"HR_batter": 1.0789,
"HR_platoon": 0.9915,
"HR_bvp": 1.1076,
"bvp_at_bats": 10.0,
"combined": {
"H": 1.0048,
"BB": 1.15,
"SO": 0.7829,
"HR": 1.1848
}
},
{
"hitter": "Shohei Ohtani",
"plate_appearances": 4.202,
"stand": "L",
"H_batter": 1.0312,
"H_platoon": 0.9908,
"H_bvp": 0.9591,
"BB_batter": 1.4302,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.1019,
"SO_platoon": 0.9883,
"SO_bvp": 1.0232,
"HR_batter": 1.411,
"HR_platoon": 1.0112,
"HR_bvp": 0.9351,
"bvp_at_bats": 12.0,
"combined": {
"H": 0.9799,
"BB": 1.4652,
"SO": 1.1143,
"HR": 1.3342
}
},
{
"hitter": "Teoscar Hern\u00e1ndez",
"plate_appearances": 4.098,
"stand": "R",
"H_batter": 1.0438,
"H_platoon": 0.9909,
"H_bvp": 0.9987,
"BB_batter": 0.9575,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.2115,
"SO_platoon": 1.0163,
"SO_bvp": 0.9688,
"HR_batter": 1.0784,
"HR_platoon": 0.9915,
"HR_bvp": 0.9471,
"bvp_at_bats": 9.0,
"combined": {
"H": 1.033,
"BB": 0.9154,
"SO": 1.1928,
"HR": 1.0127
}
},
{
"hitter": "Max Muncy",
"plate_appearances": 3.991,
"stand": "L",
"H_batter": 0.9993,
"H_platoon": 0.9908,
"H_bvp": 1.0282,
"BB_batter": 1.25,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.1183,
"SO_platoon": 0.9883,
"SO_bvp": 1.0133,
"HR_batter": 1.5506,
"HR_platoon": 1.0112,
"HR_bvp": 0.91,
"bvp_at_bats": 19.0,
"combined": {
"H": 1.018,
"BB": 1.2806,
"SO": 1.1199,
"HR": 1.4268
}
},
{
"hitter": "Enrique Hern\u00e1ndez",
"plate_appearances": 3.637,
"stand": "R",
"H_batter": 0.9943,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.8619,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.2257,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.179,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9853,
"BB": 0.824,
"SO": 1.2457,
"HR": 1.169
}
},
{
"hitter": "Kyle Tucker",
"plate_appearances": 3.888,
"stand": "L",
"H_batter": 0.9681,
"H_platoon": 0.9908,
"H_bvp": 0.9471,
"BB_batter": 1.2795,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.7816,
"SO_platoon": 0.9883,
"SO_bvp": 1.0146,
"HR_batter": 0.9559,
"HR_platoon": 1.0112,
"HR_bvp": 0.9471,
"bvp_at_bats": 7.0,
"combined": {
"H": 0.9085,
"BB": 1.3108,
"SO": 0.7837,
"HR": 0.9155
}
},
{
"hitter": "Andy Pages",
"plate_appearances": 3.677,
"stand": "R",
"H_batter": 1.056,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.9916,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.9044,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.2062,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0464,
"BB": 0.948,
"SO": 0.9191,
"HR": 1.1959
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 22.104
},
"player_attribution": {
"home_runs": {
"model_delta": -0.0001,
"weighted_stage_delta": -0.0
},
"away_runs": {
"model_delta": -0.3843,
"weighted_stage_delta": -0.1306
},
"home_win": {
"model_delta": 0.0417,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.7949,
"market_implied": 1.9218,
"market_multiplier": 1.0707,
"weight": 0.4625,
"effective_multiplier": 1.0321,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.5724,
"model_p_over": 0.5356,
"implied_multiplier": 1.0707
}
]
},
"H": {
"model": 4.687,
"market_implied": 4.1942,
"market_multiplier": 0.8949,
"weight": 0.4807,
"effective_multiplier": 0.948,
"lines": [
4.5
],
"books": 2,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 4.5,
"books": 2,
"market_p_over": 0.409,
"model_p_over": 0.503,
"implied_multiplier": 0.8949
}
]
},
"OUTS": {
"model": 16.236,
"market_implied": 13.9548,
"market_multiplier": 0.8595,
"weight": 0.5268,
"effective_multiplier": 0.9233,
"lines": [
13.5,
14.5
],
"books": 7,
"props": [
{
"market": "pitcher_outs",
"point": 13.5,
"books": 5,
"market_p_over": 0.507,
"model_p_over": 0.733,
"implied_multiplier": 0.848
},
{
"market": "pitcher_outs",
"point": 14.5,
"books": 2,
"market_p_over": 0.4683,
"model_p_over": 0.6389,
"implied_multiplier": 0.8889
}
]
},
"SO": {
"model": 4.1434,
"market_implied": 4.099,
"market_multiplier": 0.9893,
"weight": 0.5536,
"effective_multiplier": 0.994,
"lines": [
3.5,
4.5
],
"books": 6,
"props": [
{
"market": "pitcher_strikeouts",
"point": 3.5,
"books": 4,
"market_p_over": 0.5737,
"model_p_over": 0.594,
"implied_multiplier": 0.9743
},
{
"market": "pitcher_strikeouts",
"point": 4.5,
"books": 2,
"market_p_over": 0.4152,
"model_p_over": 0.3992,
"implied_multiplier": 1.0199
}
]
},
"BB": {
"model": 1.2012,
"market_implied": 1.6767,
"market_multiplier": 1.3959,
"weight": 0.5536,
"effective_multiplier": 1.2028,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.4995,
"model_p_over": 0.3378,
"implied_multiplier": 1.3959
}
]
}
},
"expected_before": {
"SO": 4.1434,
"H": 4.687,
"BB": 1.2012,
"ER": 1.7949,
"IP": 5.412,
"ERA": 2.985
},
"expected_after": {
"SO": 4.1187,
"H": 4.4433,
"BB": 1.4448,
"ER": 1.8525,
"IP": 4.9971,
"ERA": 3.336
},
"line": {
"IP": 6.0,
"H": 5,
"ER": 1,
"BB": 2,
"SO": 1,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.0,
"H": 5,
"R": 1,
"ER": 1,
"BB": 2,
"SO": 2,
"HR": 0
},
"stats": {
"IP": 5.0,
"H": 6,
"R": 3,
"ER": 3,
"BB": 2,
"SO": 4,
"HR": 0,
"BF": 23,
"Pitches": 85
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"position": "Starter",
"team": "ATL",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 8,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 9,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.2008,
"offense_edge": 0.021,
"opponent_offense_edge": 0.1022,
"defense_strength": 0.1609,
"opponent_defense_weakness": -0.2112,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9927,
"run_prevention": 1.0103,
"strikeout": 0.9858
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 543.0,
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.311,
"xwoba": 0.306,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 37.1,
"avg_best_speed": 80.0191,
"avg_hyper_speed": 93.8316,
"whiff_percent": 22.9,
"swing_percent": 45.6
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0666,
"command_and_miss": -0.0171,
"regression_edge": 0.1429,
"xwoba_edge": 0.1714,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.1143,
"whiff_edge": -0.3286,
"bb_edge": 0.425,
"pitch_design_score": -0.0125
},
"quality_score": 0.0461,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.988,
"walk_factor": 0.966,
"homer_factor": 0.9832,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641816",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9961,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9961,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.966,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9832,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.988,
"adjusted": 5
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 5.0,
"H": 6,
"R": 3,
"ER": 3,
"BB": 2,
"SO": 4,
"HR": 0,
"BF": 23,
"Pitches": 85,
"source": "play_by_play_realizer_v1",
"predicted_R": 3,
"predicted_ER": 3
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20261007_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261007 | 20261007_MIL@SD | away | Robert Gasser | Robert Gasser | True | 3.2 | 4.0 | 1 | 2 | 1 | -1 | 3/3 | 1/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8689024390243905,
"WHIP": 1.1890243902439024,
"IP": 109.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.2,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0263,
"sample_weight": 1.0,
"run_prevention_factor": 1.0022,
"strikeout_factor": 0.9857,
"walk_factor": 0.964,
"homer_factor": 0.9891,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 7.4,
"woba": 0.309,
"xwoba": 0.317,
"barrel_percent": 7.6,
"hard_hit_percent": 34.0,
"whiff_percent": 22.5
},
"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": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "688107",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 5.0,
"R": 6.0,
"H": 13.0,
"BB": 10.0,
"SO": 25.0,
"HR": 2.0,
"BF": 105.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.1,
"ER": 1.0,
"R": 1.2,
"H": 2.6,
"BB": 2.0,
"SO": 5.0,
"HR": 0.4,
"BF": 21.0,
"Pitches": 88.4
},
"rates": {
"ERA": 1.6667,
"WHIP": 0.8519,
"ER_per_IP": 0.18519,
"H_per_IP": 0.48148,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.92593,
"HR_per_IP": 0.07407
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 17.0,
"R": 18.0,
"H": 42.0,
"BB": 21.0,
"SO": 51.0,
"HR": 4.0,
"BF": 221.0,
"Pitches": 873.0
},
"per_game": {
"IP": 5.1,
"ER": 1.7,
"R": 1.8,
"H": 4.2,
"BB": 2.1,
"SO": 5.1,
"HR": 0.4,
"BF": 22.1,
"Pitches": 87.3
},
"rates": {
"ERA": 2.9423,
"WHIP": 1.2115,
"ER_per_IP": 0.32692,
"H_per_IP": 0.80769,
"BB_per_IP": 0.40385,
"SO_per_IP": 0.98077,
"HR_per_IP": 0.07692
}
},
"season": {
"games": 21,
"totals": {
"IP": 109.1,
"ER": 47.0,
"R": 49.0,
"H": 95.0,
"BB": 35.0,
"SO": 103.0,
"HR": 15.0,
"BF": 463.0,
"Pitches": 1817.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2381,
"R": 2.3333,
"H": 4.5238,
"BB": 1.6667,
"SO": 4.9048,
"HR": 0.7143,
"BF": 22.0476,
"Pitches": 86.5238
},
"rates": {
"ERA": 3.8689,
"WHIP": 1.189,
"ER_per_IP": 0.42988,
"H_per_IP": 0.8689,
"BB_per_IP": 0.32012,
"SO_per_IP": 0.94207,
"HR_per_IP": 0.1372
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.749,
"predicted_H": 3.91,
"predicted_BB": 1.993,
"predicted_SO": 5.043,
"predicted_HR": 0.53,
"predicted_ERA": 2.9518,
"predicted_WHIP": 1.1068
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 1.749,
"final": 3.151,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.91,
"final": 3.9488,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.993,
"final": 1.5648,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.043,
"final": 5.0245,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.53,
"final": 0.3014,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9518,
"final": 2.9518,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1068,
"final": 1.1068,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 17,
"H": 42,
"BB": 21,
"SO": 51,
"HR": 4,
"ERA": 2.9423076923076925,
"WHIP": 1.2115384615384617,
"K9": 8.826923076923078,
"HR9": 0.6923076923076924,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.8208135922902081,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.6312,
"BB": 0.3491,
"SO": 0.9286,
"HR": 0.1021
},
"source": "recent_role_blend",
"tto_penalty": 1.0027,
"role_avg_IP": 5.2,
"recent_avg_IP": 5.4
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0133,
"run_prevention": 0.9717,
"strikeout": 1.0063
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 0.9857,
"walk_factor": 0.964,
"homer_factor": 0.9891,
"run_prevention_factor": 1.0022,
"quality_score": -0.0263
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0428,
"BB": 1.0569,
"SO": 0.9836,
"HR": 1.0295
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0083,
"SO": 0.9942,
"HR": 1.0
},
"earned_run_factor": 1.0023,
"before": {
"H": 2.972,
"BB": 1.644,
"SO": 4.529,
"HR": 0.483,
"ER": 1.359,
"ERA": 2.491
},
"after": {
"H": 2.972,
"BB": 1.6576,
"SO": 4.5027,
"HR": 0.483,
"ER": 1.3622,
"ERA": 2.496
},
"by_hitter": [
{
"hitter": "Fernando Tatis Jr.",
"plate_appearances": 4.476,
"stand": "R",
"H_batter": 1.0931,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 1.0031,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.8556,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 1.1329,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.1065,
"BB": 1.0629,
"SO": 0.8367,
"HR": 1.1459
}
},
{
"hitter": "Jackson Merrill",
"plate_appearances": 4.425,
"stand": "L",
"H_batter": 1.0484,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 0.7542,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 1.0928,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 1.1824,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0838,
"BB": 0.6861,
"SO": 1.14,
"HR": 1.1338
}
},
{
"hitter": "Manny Machado",
"plate_appearances": 4.184,
"stand": "R",
"H_batter": 0.9342,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 1.2856,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.9439,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 1.3344,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9457,
"BB": 1.3622,
"SO": 0.923,
"HR": 1.3497
}
},
{
"hitter": "Ty France",
"plate_appearances": 4.314,
"stand": "R",
"H_batter": 1.0992,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 0.8548,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.971,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 1.2181,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.1127,
"BB": 0.9057,
"SO": 0.9495,
"HR": 1.2321
}
},
{
"hitter": "Austin Hays",
"plate_appearances": 3.79,
"stand": "R",
"H_batter": 1.0282,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 0.6316,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 1.1577,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 0.9708,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0408,
"BB": 0.6692,
"SO": 1.1321,
"HR": 0.982
}
},
{
"hitter": "Xander Bogaerts",
"plate_appearances": 3.879,
"stand": "R",
"H_batter": 0.9598,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 1.3785,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.8259,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 0.8116,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9716,
"BB": 1.4607,
"SO": 0.8076,
"HR": 0.8209
}
},
{
"hitter": "Luis Campusano",
"plate_appearances": 3.972,
"stand": "R",
"H_batter": 1.0201,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 1.2577,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.9349,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 1.0081,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0326,
"BB": 1.3327,
"SO": 0.9142,
"HR": 1.0197
}
},
{
"hitter": "Jake Cronenworth",
"plate_appearances": 3.748,
"stand": "L",
"H_batter": 0.9653,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 0.9983,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 1.0216,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 0.747,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9979,
"BB": 0.9082,
"SO": 1.0657,
"HR": 0.7163
}
},
{
"hitter": "Samad Taylor",
"plate_appearances": 3.537,
"stand": "R",
"H_batter": 1.0665,
"H_platoon": 1.0123,
"H_bvp": 1.0,
"BB_batter": 1.0924,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 1.1371,
"SO_platoon": 0.9779,
"SO_bvp": 1.0,
"HR_batter": 0.7397,
"HR_platoon": 1.0115,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0796,
"BB": 1.1575,
"SO": 1.112,
"HR": 0.7482
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 19.349
},
"player_attribution": {
"home_runs": {
"model_delta": 0.3115,
"weighted_stage_delta": 0.1184
},
"away_runs": {
"model_delta": -0.1572,
"weighted_stage_delta": -0.0535
},
"home_win": {
"model_delta": 0.0152,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.3622,
"market_implied": 0.9374,
"market_multiplier": 0.6881,
"weight": 0.4625,
"effective_multiplier": 0.8413,
"lines": [
0.5
],
"books": 2,
"props": [
{
"market": "pitcher_earned_runs",
"point": 0.5,
"books": 2,
"market_p_over": 0.6084,
"model_p_over": 0.7439,
"implied_multiplier": 0.6881
}
]
},
"H": {
"model": 2.972,
"market_implied": 2.7953,
"market_multiplier": 0.9406,
"weight": 0.4807,
"effective_multiplier": 0.971,
"lines": [
2.5
],
"books": 2,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 2.5,
"books": 2,
"market_p_over": 0.5294,
"model_p_over": 0.5705,
"implied_multiplier": 0.9406
}
]
},
"OUTS": {
"model": 14.733,
"market_implied": 8.8013,
"market_multiplier": 0.5974,
"weight": 0.5268,
"effective_multiplier": 0.7623,
"lines": [
8.5
],
"books": 4,
"props": [
{
"market": "pitcher_outs",
"point": 8.5,
"books": 4,
"market_p_over": 0.5179,
"model_p_over": 0.9563,
"implied_multiplier": 0.5974
}
]
},
"SO": {
"model": 4.5027,
"market_implied": 2.5692,
"market_multiplier": 0.5706,
"weight": 0.5536,
"effective_multiplier": 0.733,
"lines": [
2.5
],
"books": 6,
"props": [
{
"market": "pitcher_strikeouts",
"point": 2.5,
"books": 6,
"market_p_over": 0.4738,
"model_p_over": 0.8267,
"implied_multiplier": 0.5706
}
]
}
},
"expected_before": {
"SO": 4.5027,
"H": 2.972,
"BB": 1.6576,
"ER": 1.3622,
"IP": 4.911,
"ERA": 2.496
},
"expected_after": {
"SO": 3.3005,
"H": 2.8857,
"BB": 1.6576,
"ER": 1.146,
"IP": 3.7437,
"ERA": 2.755
},
"line": {
"IP": 5.1,
"H": 4,
"ER": 5,
"BB": 1,
"SO": 5,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 5.1,
"H": 4,
"R": 5,
"ER": 5,
"BB": 1,
"SO": 5,
"HR": 0
},
"stats": {
"IP": 3.2,
"H": 3,
"R": 2,
"ER": 2,
"BB": 1,
"SO": 4,
"HR": 0,
"BF": 15,
"Pitches": 64
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "688107",
"player_name": "Robert Gasser",
"position": "Starter",
"team": "MIL",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 8,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.2,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 3.2,
"delta": -2.1333,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 9,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.2,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 3.2,
"delta": -2.1333,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.1939,
"offense_edge": 0.1449,
"opponent_offense_edge": -0.0064,
"defense_strength": 0.1759,
"opponent_defense_weakness": -0.0671,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0133,
"run_prevention": 0.9717,
"strikeout": 1.0063
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "688107",
"profile": {
"available": true,
"pitcher_id": "688107",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 414.0,
"k_percent": 22.3,
"bb_percent": 7.4,
"woba": 0.309,
"xwoba": 0.317,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 34.0,
"avg_best_speed": 74.5916,
"avg_hyper_speed": 93.1705,
"whiff_percent": 22.5,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0205,
"command_and_miss": -0.0321,
"regression_edge": -0.2286,
"xwoba_edge": -0.1429,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.5571,
"whiff_edge": -0.3857,
"bb_edge": 0.45,
"pitch_design_score": -0.0829
},
"quality_score": -0.0263,
"sample_weight": 1.0,
"run_prevention_factor": 1.0022,
"strikeout_factor": 0.9857,
"walk_factor": 0.964,
"homer_factor": 0.9891,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "688107",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0022,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0022,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.964,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9891,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9857,
"adjusted": 5
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 3.2,
"H": 3,
"R": 2,
"ER": 2,
"BB": 1,
"SO": 4,
"HR": 0,
"BF": 15,
"Pitches": 64,
"source": "play_by_play_realizer_v1",
"predicted_R": 2,
"predicted_ER": 2
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20261007_MIL@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"
}
} |
| 20261007 | 20261007_MIL@SD | home | Walker Buehler | Walker Buehler | True | 3.2 | 3.0 | -2 | 3 | 1 | -2 | 4/3 | 3/2 | 4/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.626898047722343,
"WHIP": 1.3470715835140998,
"IP": 153.2,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 4.802,
"recent_avg_IP": 4.467,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1628,
"sample_weight": 1.0,
"run_prevention_factor": 1.0138,
"strikeout_factor": 0.956,
"walk_factor": 0.992,
"homer_factor": 1.0302,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 8.8,
"woba": 0.329,
"xwoba": 0.317,
"barrel_percent": 8.4,
"hard_hit_percent": 38.7,
"whiff_percent": 19.5
},
"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": 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": "621111",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 11.0,
"R": 12.0,
"H": 21.0,
"BB": 8.0,
"SO": 20.0,
"HR": 5.0,
"BF": 92.0,
"Pitches": 390.0
},
"per_game": {
"IP": 4.1,
"ER": 2.2,
"R": 2.4,
"H": 4.2,
"BB": 1.6,
"SO": 4.0,
"HR": 1.0,
"BF": 18.4,
"Pitches": 78.0
},
"rates": {
"ERA": 4.4328,
"WHIP": 1.2985,
"ER_per_IP": 0.49254,
"H_per_IP": 0.9403,
"BB_per_IP": 0.35821,
"SO_per_IP": 0.89552,
"HR_per_IP": 0.22388
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 19.0,
"R": 20.0,
"H": 43.0,
"BB": 13.0,
"SO": 39.0,
"HR": 8.0,
"BF": 196.0,
"Pitches": 807.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 2.0,
"H": 4.3,
"BB": 1.3,
"SO": 3.9,
"HR": 0.8,
"BF": 19.6,
"Pitches": 80.7
},
"rates": {
"ERA": 3.4662,
"WHIP": 1.1351,
"ER_per_IP": 0.38514,
"H_per_IP": 0.87162,
"BB_per_IP": 0.26351,
"SO_per_IP": 0.79054,
"HR_per_IP": 0.16216
}
},
"season": {
"games": 32,
"totals": {
"IP": 153.2,
"ER": 79.0,
"R": 81.0,
"H": 150.0,
"BB": 57.0,
"SO": 131.0,
"HR": 22.0,
"BF": 651.0,
"Pitches": 2608.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4688,
"R": 2.5312,
"H": 4.6875,
"BB": 1.7812,
"SO": 4.0938,
"HR": 0.6875,
"BF": 20.3438,
"Pitches": 81.5
},
"rates": {
"ERA": 4.6269,
"WHIP": 1.3471,
"ER_per_IP": 0.5141,
"H_per_IP": 0.97614,
"BB_per_IP": 0.37093,
"SO_per_IP": 0.85249,
"HR_per_IP": 0.14317
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.164,
"predicted_H": 4.322,
"predicted_BB": 1.552,
"predicted_SO": 3.996,
"predicted_HR": 0.839,
"predicted_ERA": 4.1997,
"predicted_WHIP": 1.2665
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.164,
"final": 3.7256,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.322,
"final": 5.0051,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.552,
"final": 0.9202,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.996,
"final": 4.4047,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.839,
"final": 0.4975,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1997,
"final": 4.1997,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2665,
"final": 1.2665,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 19,
"H": 43,
"BB": 13,
"SO": 39,
"HR": 8,
"ERA": 3.4662162162162162,
"WHIP": 1.135135135135135,
"K9": 7.114864864864865,
"HR9": 1.4594594594594594,
"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-26T00:00:00"
},
"recent_form_boost": 0.8778432180698338,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.9563,
"BB": 0.3639,
"SO": 0.8763,
"HR": 0.1879
},
"source": "recent_role_blend",
"tto_penalty": 0.9989,
"role_avg_IP": 4.802,
"recent_avg_IP": 4.467
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.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": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 0.9885,
"run_prevention": 1.0262,
"strikeout": 0.9826
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 0.956,
"walk_factor": 0.992,
"homer_factor": 1.0302,
"run_prevention_factor": 1.0138,
"quality_score": -0.1628
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0205,
"BB": 1.1503,
"SO": 0.99,
"HR": 0.9765
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0212,
"SO": 0.9965,
"HR": 1.0
},
"earned_run_factor": 1.0043,
"before": {
"H": 4.162,
"BB": 1.583,
"SO": 3.651,
"HR": 0.817,
"ER": 2.183,
"ERA": 4.686
},
"after": {
"H": 4.162,
"BB": 1.6166,
"SO": 3.6382,
"HR": 0.817,
"ER": 2.1924,
"ERA": 4.707
},
"by_hitter": [
{
"hitter": "Jackson Chourio",
"plate_appearances": 4.56,
"stand": "R",
"H_batter": 1.1076,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.9427,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.0388,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.3236,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0975,
"BB": 0.9012,
"SO": 1.0557,
"HR": 1.3123
}
},
{
"hitter": "Christian Yelich",
"plate_appearances": 4.23,
"stand": "L",
"H_batter": 0.9729,
"H_platoon": 0.9908,
"H_bvp": 1.0059,
"BB_batter": 1.146,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.1751,
"SO_platoon": 0.9883,
"SO_bvp": 0.9919,
"HR_batter": 0.8636,
"HR_platoon": 1.0112,
"HR_bvp": 1.1313,
"bvp_at_bats": 12.0,
"combined": {
"H": 0.9696,
"BB": 1.1741,
"SO": 1.1519,
"HR": 0.9879
}
},
{
"hitter": "William Contreras",
"plate_appearances": 4.267,
"stand": "R",
"H_batter": 1.0514,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.0857,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.6782,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.0094,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0418,
"BB": 1.0379,
"SO": 0.6893,
"HR": 1.0008
}
},
{
"hitter": "Brice Turang",
"plate_appearances": 4.119,
"stand": "L",
"H_batter": 1.0405,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 1.4253,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.111,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 1.0164,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0309,
"BB": 1.4602,
"SO": 1.098,
"HR": 1.0278
}
},
{
"hitter": "Jake Bauers",
"plate_appearances": 4.014,
"stand": "L",
"H_batter": 0.9999,
"H_platoon": 0.9908,
"H_bvp": 0.9972,
"BB_batter": 1.6532,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.2233,
"SO_platoon": 0.9883,
"SO_bvp": 0.9911,
"HR_batter": 1.2906,
"HR_platoon": 1.0112,
"HR_bvp": 1.136,
"bvp_at_bats": 5.0,
"combined": {
"H": 0.9879,
"BB": 1.6937,
"SO": 1.1982,
"HR": 1.4825
}
},
{
"hitter": "Cooper Pratt",
"plate_appearances": 3.879,
"stand": "R",
"H_batter": 1.0377,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 1.0257,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.8412,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 0.6793,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0283,
"BB": 0.9806,
"SO": 0.8549,
"HR": 0.6735
}
},
{
"hitter": "Sal Frelick",
"plate_appearances": 3.804,
"stand": "L",
"H_batter": 0.9891,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 0.9457,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.526,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 0.6169,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.98,
"BB": 0.9689,
"SO": 0.5198,
"HR": 0.6238
}
},
{
"hitter": "Garrett Mitchell",
"plate_appearances": 3.804,
"stand": "L",
"H_batter": 1.0148,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 1.1852,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.3979,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 0.7487,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0055,
"BB": 1.2142,
"SO": 1.3815,
"HR": 0.7571
}
},
{
"hitter": "Joey Ortiz",
"plate_appearances": 3.732,
"stand": "R",
"H_batter": 1.0415,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.9682,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 0.9324,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 0.83,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.032,
"BB": 0.9256,
"SO": 0.9476,
"HR": 0.8229
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 18.321
},
"player_attribution": {
"home_runs": {
"model_delta": 0.1393,
"weighted_stage_delta": 0.0529
},
"away_runs": {
"model_delta": -0.1295,
"weighted_stage_delta": -0.044
},
"home_win": {
"model_delta": 0.0244,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 2.1924,
"market_implied": 1.3797,
"market_multiplier": 0.6293,
"weight": 0.4625,
"effective_multiplier": 0.8072,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.4011,
"model_p_over": 0.6436,
"implied_multiplier": 0.6293
}
]
},
"H": {
"model": 4.162,
"market_implied": 2.7127,
"market_multiplier": 0.6518,
"weight": 0.4807,
"effective_multiplier": 0.814,
"lines": [
2.5
],
"books": 3,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 2.5,
"books": 3,
"market_p_over": 0.5095,
"model_p_over": 0.7847,
"implied_multiplier": 0.6518
}
]
},
"OUTS": {
"model": 12.576,
"market_implied": 9.4447,
"market_multiplier": 0.751,
"weight": 0.5268,
"effective_multiplier": 0.86,
"lines": [
8.5,
9.5
],
"books": 4,
"props": [
{
"market": "pitcher_outs",
"point": 8.5,
"books": 2,
"market_p_over": 0.5743,
"model_p_over": 0.8789,
"implied_multiplier": 0.734
},
{
"market": "pitcher_outs",
"point": 9.5,
"books": 2,
"market_p_over": 0.4994,
"model_p_over": 0.8038,
"implied_multiplier": 0.7684
}
]
},
"SO": {
"model": 3.6382,
"market_implied": 2.9389,
"market_multiplier": 0.8078,
"weight": 0.5536,
"effective_multiplier": 0.8886,
"lines": [
2.5
],
"books": 6,
"props": [
{
"market": "pitcher_strikeouts",
"point": 2.5,
"books": 6,
"market_p_over": 0.563,
"model_p_over": 0.704,
"implied_multiplier": 0.8078
}
]
},
"BB": {
"model": 1.6166,
"market_implied": 1.0366,
"market_multiplier": 0.6412,
"weight": 0.5536,
"effective_multiplier": 0.7819,
"lines": [
0.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 0.5,
"books": 2,
"market_p_over": 0.6453,
"model_p_over": 0.8014,
"implied_multiplier": 0.6412
}
]
}
},
"expected_before": {
"SO": 3.6382,
"H": 4.162,
"BB": 1.6166,
"ER": 2.1924,
"IP": 4.192,
"ERA": 4.707
},
"expected_after": {
"SO": 3.2327,
"H": 3.388,
"BB": 1.264,
"ER": 1.7697,
"IP": 3.605,
"ERA": 4.418
},
"line": {
"IP": 4.2,
"H": 6,
"ER": 6,
"BB": 0,
"SO": 5,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 4.2,
"H": 6,
"R": 6,
"ER": 6,
"BB": 0,
"SO": 5,
"HR": 0
},
"stats": {
"IP": 3.2,
"H": 4,
"R": 3,
"ER": 3,
"BB": 3,
"SO": 4,
"HR": 0,
"BF": 18,
"Pitches": 75
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "621111",
"player_name": "Walker Buehler",
"position": "Starter",
"team": "SD",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 8,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 3.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.2,
"delta": -1.4667,
"percent_delta": -0.3143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 9,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 3.2,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.2,
"delta": -1.4667,
"percent_delta": -0.3143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.1939,
"offense_edge": -0.0064,
"opponent_offense_edge": 0.1449,
"defense_strength": 0.0671,
"opponent_defense_weakness": -0.1759,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9885,
"run_prevention": 1.0262,
"strikeout": 0.9826
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621111",
"profile": {
"available": true,
"pitcher_id": "621111",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 583.0,
"k_percent": 20.1,
"bb_percent": 8.8,
"woba": 0.329,
"xwoba": 0.317,
"sweet_spot_percent": 30.9,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 38.7,
"avg_best_speed": 78.722,
"avg_hyper_speed": 94.112,
"whiff_percent": 19.5,
"swing_percent": 45.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.169,
"command_and_miss": -0.3936,
"regression_edge": 0.3429,
"xwoba_edge": -0.1429,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.1143,
"whiff_edge": -0.8143,
"bb_edge": 0.1,
"pitch_design_score": -0.0012
},
"quality_score": -0.1628,
"sample_weight": 1.0,
"run_prevention_factor": 1.0138,
"strikeout_factor": 0.956,
"walk_factor": 0.992,
"homer_factor": 1.0302,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "621111",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0138,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0138,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.992,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0302,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.956,
"adjusted": 4
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 3.2,
"H": 4,
"R": 3,
"ER": 3,
"BB": 3,
"SO": 4,
"HR": 0,
"BF": 18,
"Pitches": 75,
"source": "play_by_play_realizer_v1",
"predicted_R": 3,
"predicted_ER": 3
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20261007_MIL@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"
}
} |
| 20261007 | 20261007_TB@NYY | away | Nick Martinez | Nick Martinez | True | 4.1 | 3.2 | -2 | 2 | 2 | 0 | 4/5 | 2/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1,
"WHIP": 1.0944444444444446,
"IP": 180.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.806,
"recent_avg_IP": 5.267,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0517,
"sample_weight": 1.0,
"run_prevention_factor": 1.0044,
"strikeout_factor": 0.9154,
"walk_factor": 0.888,
"homer_factor": 0.96,
"regression_flag": "neutral",
"k_percent": 15.1,
"bb_percent": 3.6,
"woba": 0.295,
"xwoba": 0.307,
"barrel_percent": 6.8,
"hard_hit_percent": 32.9,
"whiff_percent": 17.4
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 180.0,
"season_ERA": 3.1,
"season_WHIP": 1.094,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607259",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 11.0,
"R": 11.0,
"H": 24.0,
"BB": 4.0,
"SO": 18.0,
"HR": 4.0,
"BF": 104.0,
"Pitches": 374.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 4.8,
"BB": 0.8,
"SO": 3.6,
"HR": 0.8,
"BF": 20.8,
"Pitches": 74.8
},
"rates": {
"ERA": 3.7595,
"WHIP": 1.0633,
"ER_per_IP": 0.41772,
"H_per_IP": 0.91139,
"BB_per_IP": 0.1519,
"SO_per_IP": 0.68354,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 24.0,
"R": 24.0,
"H": 55.0,
"BB": 6.0,
"SO": 40.0,
"HR": 7.0,
"BF": 225.0,
"Pitches": 799.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 5.5,
"BB": 0.6,
"SO": 4.0,
"HR": 0.7,
"BF": 22.5,
"Pitches": 79.9
},
"rates": {
"ERA": 3.8118,
"WHIP": 1.0765,
"ER_per_IP": 0.42353,
"H_per_IP": 0.97059,
"BB_per_IP": 0.10588,
"SO_per_IP": 0.70588,
"HR_per_IP": 0.12353
}
},
"season": {
"games": 31,
"totals": {
"IP": 180.0,
"ER": 62.0,
"R": 62.0,
"H": 171.0,
"BB": 26.0,
"SO": 109.0,
"HR": 22.0,
"BF": 722.0,
"Pitches": 2524.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 5.5161,
"BB": 0.8387,
"SO": 3.5161,
"HR": 0.7097,
"BF": 23.2903,
"Pitches": 81.4194
},
"rates": {
"ERA": 3.1,
"WHIP": 1.0944,
"ER_per_IP": 0.34444,
"H_per_IP": 0.95,
"BB_per_IP": 0.14444,
"SO_per_IP": 0.60556,
"HR_per_IP": 0.12222
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.327,
"predicted_H": 5.239,
"predicted_BB": 0.933,
"predicted_SO": 3.941,
"predicted_HR": 0.763,
"predicted_ERA": 3.7818,
"predicted_WHIP": 1.1146
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.327,
"final": 3.0107,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.239,
"final": 6.3674,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.933,
"final": 1.3691,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.941,
"final": 4.7825,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.763,
"final": 1.2685,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7818,
"final": 3.7818,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1146,
"final": 1.1146,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 24,
"H": 55,
"BB": 6,
"SO": 40,
"HR": 7,
"ERA": 3.811764705882353,
"WHIP": 1.076470588235294,
"K9": 6.352941176470589,
"HR9": 1.111764705882353,
"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-27T00:00:00"
},
"recent_form_boost": 0.9152508094847782,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.9271,
"BB": 0.1489,
"SO": 0.6519,
"HR": 0.1398
},
"source": "recent_role_blend",
"tto_penalty": 1.0027,
"role_avg_IP": 5.806,
"recent_avg_IP": 5.267
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0019,
"run_prevention": 0.9928,
"strikeout": 0.9976
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 0.9154,
"walk_factor": 0.888,
"homer_factor": 0.96,
"run_prevention_factor": 1.0044,
"quality_score": -0.0517
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0082,
"BB": 1.0515,
"SO": 1.0296,
"HR": 1.1706
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0076,
"SO": 1.0103,
"HR": 1.0
},
"earned_run_factor": 1.0008,
"before": {
"H": 4.46,
"BB": 0.716,
"SO": 3.152,
"HR": 0.675,
"ER": 1.872,
"ERA": 3.47
},
"after": {
"H": 4.46,
"BB": 0.7214,
"SO": 3.1845,
"HR": 0.675,
"ER": 1.8735,
"ERA": 3.473
},
"by_hitter": [
{
"hitter": "Trent Grisham",
"plate_appearances": 4.113,
"stand": "L",
"H_batter": 0.9267,
"H_platoon": 0.9908,
"H_bvp": 1.0713,
"BB_batter": 1.3095,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.857,
"SO_platoon": 0.9883,
"SO_bvp": 0.9515,
"HR_batter": 1.1047,
"HR_platoon": 1.0112,
"HR_bvp": 0.9515,
"bvp_at_bats": 6.0,
"combined": {
"H": 0.9836,
"BB": 1.3416,
"SO": 0.8059,
"HR": 1.0629
}
},
{
"hitter": "Ben Rice",
"plate_appearances": 4.202,
"stand": "L",
"H_batter": 1.0348,
"H_platoon": 0.9908,
"H_bvp": 1.0372,
"BB_batter": 1.4289,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.0646,
"SO_platoon": 0.9883,
"SO_bvp": 0.9623,
"HR_batter": 1.831,
"HR_platoon": 1.0112,
"HR_bvp": 0.9389,
"bvp_at_bats": 9.0,
"combined": {
"H": 1.0634,
"BB": 1.4639,
"SO": 1.0125,
"HR": 1.7384
}
},
{
"hitter": "Luis Garc\u00eda Jr.",
"plate_appearances": 4.323,
"stand": "L",
"H_batter": 1.1006,
"H_platoon": 0.9908,
"H_bvp": 0.9904,
"BB_batter": 0.6063,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.825,
"SO_platoon": 0.9883,
"SO_bvp": 1.0361,
"HR_batter": 1.5678,
"HR_platoon": 1.0112,
"HR_bvp": 0.9429,
"bvp_at_bats": 10.0,
"combined": {
"H": 1.08,
"BB": 0.6212,
"SO": 0.8448,
"HR": 1.4948
}
},
{
"hitter": "Cody Bellinger",
"plate_appearances": 4.342,
"stand": "L",
"H_batter": 1.0359,
"H_platoon": 0.9908,
"H_bvp": 1.0243,
"BB_batter": 1.1431,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 0.7067,
"SO_platoon": 0.9883,
"SO_bvp": 0.9795,
"HR_batter": 1.0266,
"HR_platoon": 1.0112,
"HR_bvp": 1.0711,
"bvp_at_bats": 17.0,
"combined": {
"H": 1.0513,
"BB": 1.1711,
"SO": 0.6841,
"HR": 1.1119
}
},
{
"hitter": "George Lombard Jr.",
"plate_appearances": 4.209,
"stand": "R",
"H_batter": 1.0082,
"H_platoon": 0.9909,
"H_bvp": 1.0,
"BB_batter": 0.7944,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.1275,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.1208,
"HR_platoon": 0.9915,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.999,
"BB": 0.7594,
"SO": 1.1459,
"HR": 1.1113
}
},
{
"hitter": "Austin Wells",
"plate_appearances": 3.432,
"stand": "L",
"H_batter": 0.905,
"H_platoon": 0.9908,
"H_bvp": 1.0341,
"BB_batter": 1.2705,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.1593,
"SO_platoon": 0.9883,
"SO_bvp": 0.9925,
"HR_batter": 1.0912,
"HR_platoon": 1.0112,
"HR_bvp": 1.15,
"bvp_at_bats": 5.0,
"combined": {
"H": 0.9273,
"BB": 1.3016,
"SO": 1.1371,
"HR": 1.2689
}
},
{
"hitter": "Anthony Volpe",
"plate_appearances": 3.916,
"stand": "R",
"H_batter": 1.0027,
"H_platoon": 0.9909,
"H_bvp": 0.9667,
"BB_batter": 1.1152,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.0208,
"SO_platoon": 1.0163,
"SO_bvp": 1.0253,
"HR_batter": 0.6424,
"HR_platoon": 0.9915,
"HR_bvp": 0.9667,
"bvp_at_bats": 5.0,
"combined": {
"H": 0.9605,
"BB": 1.0661,
"SO": 1.0637,
"HR": 0.6157
}
},
{
"hitter": "Spencer Jones",
"plate_appearances": 3.944,
"stand": "L",
"H_batter": 0.9972,
"H_platoon": 0.9908,
"H_bvp": 1.0,
"BB_batter": 0.9706,
"BB_platoon": 1.0245,
"BB_bvp": 1.0,
"SO_batter": 1.5604,
"SO_platoon": 0.9883,
"SO_bvp": 1.0,
"HR_batter": 1.1087,
"HR_platoon": 1.0112,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.988,
"BB": 0.9944,
"SO": 1.5421,
"HR": 1.1211
}
},
{
"hitter": "Jos\u00e9 Caballero",
"plate_appearances": 3.649,
"stand": "R",
"H_batter": 0.9827,
"H_platoon": 0.9909,
"H_bvp": 1.0227,
"BB_batter": 0.8001,
"BB_platoon": 0.956,
"BB_bvp": 1.0,
"SO_batter": 1.0996,
"SO_platoon": 1.0163,
"SO_bvp": 0.9895,
"HR_batter": 1.0154,
"HR_platoon": 0.9915,
"HR_bvp": 0.9429,
"bvp_at_bats": 9.0,
"combined": {
"H": 0.9959,
"BB": 0.7649,
"SO": 1.1058,
"HR": 0.9493
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 19.741
},
"player_attribution": {
"home_runs": {
"model_delta": 0.2422,
"weighted_stage_delta": 0.092
},
"away_runs": {
"model_delta": 0.1315,
"weighted_stage_delta": 0.0447
},
"home_win": {
"model_delta": -0.0356,
"weighted_stage_delta": -0.0
}
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.8735,
"market_implied": 2.0181,
"market_multiplier": 1.0772,
"weight": 0.4625,
"effective_multiplier": 1.035,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.5989,
"model_p_over": 0.5587,
"implied_multiplier": 1.0772
}
]
},
"H": {
"model": 4.46,
"market_implied": 4.0102,
"market_multiplier": 0.8991,
"weight": 0.4807,
"effective_multiplier": 0.9502,
"lines": [
3.5
],
"books": 4,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 3.5,
"books": 4,
"market_p_over": 0.5685,
"model_p_over": 0.6509,
"implied_multiplier": 0.8991
}
]
},
"OUTS": {
"model": 14.565,
"market_implied": 11.586,
"market_multiplier": 0.7955,
"weight": 0.5268,
"effective_multiplier": 0.8864,
"lines": [
12.5
],
"books": 6,
"props": [
{
"market": "pitcher_outs",
"point": 12.5,
"books": 6,
"market_p_over": 0.3762,
"model_p_over": 0.6904,
"implied_multiplier": 0.7955
}
]
},
"SO": {
"model": 3.1845,
"market_implied": 3.1595,
"market_multiplier": 0.9921,
"weight": 0.5536,
"effective_multiplier": 0.9956,
"lines": [
2.5,
3.5
],
"books": 7,
"props": [
{
"market": "pitcher_strikeouts",
"point": 2.5,
"books": 2,
"market_p_over": 0.5825,
"model_p_over": 0.6169,
"implied_multiplier": 0.9501
},
{
"market": "pitcher_strikeouts",
"point": 3.5,
"books": 5,
"market_p_over": 0.4007,
"model_p_over": 0.394,
"implied_multiplier": 1.0095
}
]
},
"BB": {
"model": 0.7214,
"market_implied": 1.0681,
"market_multiplier": 1.4806,
"weight": 0.5536,
"effective_multiplier": 1.2427,
"lines": [
0.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 0.5,
"books": 2,
"market_p_over": 0.6563,
"model_p_over": 0.5139,
"implied_multiplier": 1.4806
}
]
}
},
"expected_before": {
"SO": 3.1845,
"H": 4.46,
"BB": 0.7214,
"ER": 1.8735,
"IP": 4.855,
"ERA": 3.473
},
"expected_after": {
"SO": 3.1706,
"H": 4.2378,
"BB": 0.8964,
"ER": 1.939,
"IP": 4.3037,
"ERA": 4.055
},
"line": {
"IP": 5.2,
"H": 8,
"ER": 4,
"BB": 2,
"SO": 6,
"HR": 2
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 5.2,
"H": 8,
"R": 3,
"ER": 3,
"BB": 2,
"SO": 6,
"HR": 1
},
"stats": {
"IP": 4.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 2,
"SO": 4,
"HR": 0,
"BF": 19,
"Pitches": 80
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "607259",
"player_name": "Nick Martinez",
"position": "Starter",
"team": "TB",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"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": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_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
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 4.1,
"delta": -1.1,
"percent_delta": -0.2115,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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.6667,
"after": 4.1,
"delta": -1.5667,
"percent_delta": -0.2765,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.0168,
"offense_edge": 0.0128,
"opponent_offense_edge": 0.0233,
"defense_strength": 0.118,
"opponent_defense_weakness": -0.2017,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0019,
"run_prevention": 0.9928,
"strikeout": 0.9976
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607259",
"profile": {
"available": true,
"pitcher_id": "607259",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 680.0,
"k_percent": 15.1,
"bb_percent": 3.6,
"woba": 0.295,
"xwoba": 0.307,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 32.9,
"avg_best_speed": 75.7599,
"avg_hyper_speed": 93.1768,
"whiff_percent": 17.4,
"swing_percent": 50.9
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2502,
"command_and_miss": -0.56,
"regression_edge": -0.3429,
"xwoba_edge": 0.1429,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.7143,
"whiff_edge": -1.1143,
"bb_edge": 1.4,
"pitch_design_score": -0.1492
},
"quality_score": -0.0517,
"sample_weight": 1.0,
"run_prevention_factor": 1.0044,
"strikeout_factor": 0.9154,
"walk_factor": 0.888,
"homer_factor": 0.96,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607259",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0044,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0044,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.888,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.96,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9154,
"adjusted": 3
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 4.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 2,
"SO": 4,
"HR": 0,
"BF": 19,
"Pitches": 80,
"source": "play_by_play_realizer_v1",
"predicted_R": 2,
"predicted_ER": 2
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20261007_TB@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"
}
} |
| 20261007 | 20261007_TB@NYY | home | Max Fried | Max Fried | True | 5.1 | 5.2 | 1 | 2 | 4 | 2 | 4/7 | 3/0 | 7/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.730337078651685,
"WHIP": 0.9775280898876404,
"IP": 118.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.651,
"recent_avg_IP": 5.733,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8585,
"sample_weight": 1.0,
"run_prevention_factor": 0.927,
"strikeout_factor": 1.0097,
"walk_factor": 0.968,
"homer_factor": 0.8118,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 7.6,
"woba": 0.245,
"xwoba": 0.246,
"barrel_percent": 2.4,
"hard_hit_percent": 29.8,
"whiff_percent": 25.0
},
"espn_rank": {
"rank": 9,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 118.2,
"season_ERA": 2.73,
"season_WHIP": 0.978,
"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": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608331",
"report_date": "20261007",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 8.0,
"R": 8.0,
"H": 20.0,
"BB": 6.0,
"SO": 27.0,
"HR": 2.0,
"BF": 109.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 4.0,
"BB": 1.2,
"SO": 5.4,
"HR": 0.4,
"BF": 21.8,
"Pitches": 87.0
},
"rates": {
"ERA": 2.5116,
"WHIP": 0.907,
"ER_per_IP": 0.27907,
"H_per_IP": 0.69767,
"BB_per_IP": 0.2093,
"SO_per_IP": 0.94186,
"HR_per_IP": 0.06977
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 14.0,
"R": 14.0,
"H": 38.0,
"BB": 14.0,
"SO": 53.0,
"HR": 4.0,
"BF": 200.0,
"Pitches": 820.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.8,
"BB": 1.4,
"SO": 5.3,
"HR": 0.4,
"BF": 20.0,
"Pitches": 82.0
},
"rates": {
"ERA": 2.4231,
"WHIP": 1.0,
"ER_per_IP": 0.26923,
"H_per_IP": 0.73077,
"BB_per_IP": 0.26923,
"SO_per_IP": 1.01923,
"HR_per_IP": 0.07692
}
},
"season": {
"games": 21,
"totals": {
"IP": 118.2,
"ER": 36.0,
"R": 36.0,
"H": 82.0,
"BB": 34.0,
"SO": 110.0,
"HR": 5.0,
"BF": 456.0,
"Pitches": 1794.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7143,
"R": 1.7143,
"H": 3.9048,
"BB": 1.619,
"SO": 5.2381,
"HR": 0.2381,
"BF": 21.7143,
"Pitches": 85.4286
},
"rates": {
"ERA": 2.7303,
"WHIP": 0.9775,
"ER_per_IP": 0.30337,
"H_per_IP": 0.69101,
"BB_per_IP": 0.28652,
"SO_per_IP": 0.92697,
"HR_per_IP": 0.04213
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.834,
"predicted_H": 4.291,
"predicted_BB": 1.531,
"predicted_SO": 5.41,
"predicted_HR": 0.464,
"predicted_ERA": 2.9282,
"predicted_WHIP": 1.0329
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.834,
"final": 1.0431,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.291,
"final": 3.303,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.531,
"final": 1.7333,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.41,
"final": 5.2332,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.464,
"final": 0.2639,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9282,
"final": 2.9282,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0329,
"final": 1.0329,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 14,
"H": 38,
"BB": 14,
"SO": 53,
"HR": 4,
"ERA": 2.423076923076923,
"WHIP": 1.0,
"K9": 9.173076923076923,
"HR9": 0.6923076923076923,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-30T00:00:00"
},
"recent_form_boost": 0.7571116692132851,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.6951,
"BB": 0.2391,
"SO": 0.9361,
"HR": 0.0591
},
"source": "recent_role_blend",
"tto_penalty": 1.0043,
"role_avg_IP": 5.651,
"recent_avg_IP": 5.733
},
{
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0062,
"run_prevention": 0.981,
"strikeout": 0.9995
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.0097,
"walk_factor": 0.968,
"homer_factor": 0.8118,
"run_prevention_factor": 0.927,
"quality_score": 0.8585
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0463,
"BB": 1.0564,
"SO": 0.8775,
"HR": 1.0611
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0083,
"SO": 0.9553,
"HR": 1.0
},
"earned_run_factor": 1.0018,
"before": {
"H": 3.511,
"BB": 1.208,
"SO": 4.818,
"HR": 0.3,
"ER": 1.464,
"ERA": 2.543
},
"after": {
"H": 3.511,
"BB": 1.218,
"SO": 4.6026,
"HR": 0.3,
"ER": 1.4667,
"ERA": 2.548
},
"by_hitter": [
{
"hitter": "Yandy D\u00edaz",
"plate_appearances": 4.532,
"stand": "R",
"H_batter": 1.1126,
"H_platoon": 1.0123,
"H_bvp": 0.9803,
"BB_batter": 0.9566,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.6622,
"SO_platoon": 0.9779,
"SO_bvp": 0.9971,
"HR_batter": 1.0317,
"HR_platoon": 1.0115,
"HR_bvp": 0.91,
"bvp_at_bats": 20.0,
"combined": {
"H": 1.1041,
"BB": 1.0136,
"SO": 0.6457,
"HR": 0.9496
}
},
{
"hitter": "Jonathan Aranda",
"plate_appearances": 4.313,
"stand": "L",
"H_batter": 1.0552,
"H_platoon": 1.0338,
"H_bvp": 0.9586,
"BB_batter": 1.1368,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 1.074,
"SO_platoon": 1.0432,
"SO_bvp": 1.048,
"HR_batter": 1.0869,
"HR_platoon": 0.9589,
"HR_bvp": 1.0981,
"bvp_at_bats": 11.0,
"combined": {
"H": 1.0457,
"BB": 1.0341,
"SO": 1.1742,
"HR": 1.1445
}
},
{
"hitter": "Junior Caminero",
"plate_appearances": 4.128,
"stand": "R",
"H_batter": 1.0602,
"H_platoon": 1.0123,
"H_bvp": 0.9682,
"BB_batter": 1.2717,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.8323,
"SO_platoon": 0.9779,
"SO_bvp": 0.9519,
"HR_batter": 1.6963,
"HR_platoon": 1.0115,
"HR_bvp": 0.925,
"bvp_at_bats": 15.0,
"combined": {
"H": 1.0391,
"BB": 1.3475,
"SO": 0.7748,
"HR": 1.5871
}
},
{
"hitter": "Victor Mesa Jr.",
"plate_appearances": 4.119,
"stand": null,
"H_batter": 1.0274,
"H_platoon": 1.0,
"H_bvp": 1.0,
"BB_batter": 0.9793,
"BB_platoon": 1.0,
"BB_bvp": 1.0,
"SO_batter": 0.9403,
"SO_platoon": 1.0,
"SO_bvp": 1.0,
"HR_batter": 1.382,
"HR_platoon": 1.0,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0274,
"BB": 0.9793,
"SO": 0.9403,
"HR": 1.382
}
},
{
"hitter": "Ryan Vilade",
"plate_appearances": 3.874,
"stand": "R",
"H_batter": 1.0002,
"H_platoon": 1.0123,
"H_bvp": 0.9849,
"BB_batter": 1.0153,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 1.0668,
"SO_platoon": 0.9779,
"SO_bvp": 0.9563,
"HR_batter": 1.1718,
"HR_platoon": 1.0115,
"HR_bvp": 0.9563,
"bvp_at_bats": 6.0,
"combined": {
"H": 0.9972,
"BB": 1.0758,
"SO": 0.9976,
"HR": 1.1335
}
},
{
"hitter": "Liam Hicks",
"plate_appearances": 3.907,
"stand": "L",
"H_batter": 1.0594,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 1.1397,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 0.4891,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 1.0366,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0952,
"BB": 1.0368,
"SO": 0.5102,
"HR": 0.994
}
},
{
"hitter": "Jonny DeLuca",
"plate_appearances": 3.972,
"stand": "R",
"H_batter": 1.0641,
"H_platoon": 1.0123,
"H_bvp": 0.9977,
"BB_batter": 0.6471,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 0.9631,
"SO_platoon": 0.9779,
"SO_bvp": 1.0567,
"HR_batter": 0.9849,
"HR_platoon": 1.0115,
"HR_bvp": 0.9471,
"bvp_at_bats": 9.0,
"combined": {
"H": 1.0747,
"BB": 0.6857,
"SO": 0.9952,
"HR": 0.9435
}
},
{
"hitter": "Richie Palacios",
"plate_appearances": 3.553,
"stand": "L",
"H_batter": 0.9754,
"H_platoon": 1.0338,
"H_bvp": 1.0,
"BB_batter": 1.2367,
"BB_platoon": 0.9097,
"BB_bvp": 1.0,
"SO_batter": 0.7934,
"SO_platoon": 1.0432,
"SO_bvp": 1.0,
"HR_batter": 0.8846,
"HR_platoon": 0.9589,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0084,
"BB": 1.125,
"SO": 0.8277,
"HR": 0.8482
}
},
{
"hitter": "Taylor Walls",
"plate_appearances": 3.509,
"stand": "R",
"H_batter": 0.9457,
"H_platoon": 1.0123,
"H_bvp": 1.0535,
"BB_batter": 1.1685,
"BB_platoon": 1.0596,
"BB_bvp": 1.0,
"SO_batter": 1.115,
"SO_platoon": 0.9779,
"SO_bvp": 0.9658,
"HR_batter": 0.4728,
"HR_platoon": 1.0115,
"HR_bvp": 0.9429,
"bvp_at_bats": 10.0,
"combined": {
"H": 1.0085,
"BB": 1.2381,
"SO": 1.0531,
"HR": 0.4509
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"applied": true,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 20.262
},
"player_attribution": {
"home_runs": {
"model_delta": 0.1557,
"weighted_stage_delta": 0.0592
},
"away_runs": {
"model_delta": -0.0857,
"weighted_stage_delta": -0.0291
},
"home_win": {
"model_delta": 0.0959,
"weighted_stage_delta": 0.0
}
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.4667,
"market_implied": 1.562,
"market_multiplier": 1.065,
"weight": 0.4625,
"effective_multiplier": 1.0296,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 2,
"market_p_over": 0.4627,
"model_p_over": 0.431,
"implied_multiplier": 1.065
}
]
},
"H": {
"model": 3.511,
"market_implied": 4.1203,
"market_multiplier": 1.1735,
"weight": 0.4807,
"effective_multiplier": 1.08,
"lines": [
3.5
],
"books": 2,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 3.5,
"books": 2,
"market_p_over": 0.5897,
"model_p_over": 0.4657,
"implied_multiplier": 1.1735
}
]
},
"OUTS": {
"model": 15.543,
"market_implied": 15.9652,
"market_multiplier": 1.0272,
"weight": 0.5268,
"effective_multiplier": 1.0142,
"lines": [
14.5,
15.5
],
"books": 7,
"props": [
{
"market": "pitcher_outs",
"point": 14.5,
"books": 3,
"market_p_over": 0.6416,
"model_p_over": 0.5771,
"implied_multiplier": 1.0466
},
{
"market": "pitcher_outs",
"point": 15.5,
"books": 4,
"market_p_over": 0.4915,
"model_p_over": 0.4727,
"implied_multiplier": 1.0128
}
]
},
"SO": {
"model": 4.6026,
"market_implied": 4.5624,
"market_multiplier": 0.9913,
"weight": 0.5536,
"effective_multiplier": 0.9952,
"lines": [
4.5
],
"books": 7,
"props": [
{
"market": "pitcher_strikeouts",
"point": 4.5,
"books": 7,
"market_p_over": 0.4797,
"model_p_over": 0.4873,
"implied_multiplier": 0.9913
}
]
},
"BB": {
"model": 1.218,
"market_implied": 1.5956,
"market_multiplier": 1.31,
"weight": 0.5536,
"effective_multiplier": 1.1612,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.4736,
"model_p_over": 0.3439,
"implied_multiplier": 1.31
}
]
}
},
"expected_before": {
"SO": 4.6026,
"H": 3.511,
"BB": 1.218,
"ER": 1.4667,
"IP": 5.181,
"ERA": 2.548
},
"expected_after": {
"SO": 4.5803,
"H": 3.7917,
"BB": 1.4144,
"ER": 1.5101,
"IP": 5.2547,
"ERA": 2.586
},
"line": {
"IP": 6.0,
"H": 2,
"ER": 0,
"BB": 2,
"SO": 5,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.0,
"H": 2,
"R": 0,
"ER": 0,
"BB": 2,
"SO": 5,
"HR": 0
},
"stats": {
"IP": 5.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 3,
"SO": 7,
"HR": 0,
"BF": 23,
"Pitches": 92
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "608331",
"player_name": "Max Fried",
"position": "Starter",
"team": "NYY",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.0168,
"offense_edge": 0.0233,
"opponent_offense_edge": 0.0128,
"defense_strength": 0.2017,
"opponent_defense_weakness": -0.118,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0062,
"run_prevention": 0.981,
"strikeout": 0.9995
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608331",
"profile": {
"available": true,
"pitcher_id": "608331",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 380.0,
"k_percent": 24.0,
"bb_percent": 7.6,
"woba": 0.245,
"xwoba": 0.246,
"sweet_spot_percent": 28.5,
"barrel_batted_rate": 2.4,
"hard_hit_percent": 29.8,
"avg_best_speed": 74.5561,
"avg_hyper_speed": 92.6087,
"whiff_percent": 25.0,
"swing_percent": 46.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.463,
"command_and_miss": 0.1921,
"regression_edge": -0.0286,
"xwoba_edge": 1.8857,
"barrel_edge": 1.0667,
"hard_hit_edge": 1.1571,
"whiff_edge": -0.0286,
"bb_edge": 0.4,
"pitch_design_score": -0.0984
},
"quality_score": 0.8585,
"sample_weight": 1.0,
"run_prevention_factor": 0.927,
"strikeout_factor": 1.0097,
"walk_factor": 0.968,
"homer_factor": 0.8118,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608331",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.927,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.927,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.968,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.82,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0097,
"adjusted": 5
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 5.1,
"H": 4,
"R": 2,
"ER": 2,
"BB": 3,
"SO": 7,
"HR": 0,
"BF": 23,
"Pitches": 92,
"source": "play_by_play_realizer_v1",
"predicted_R": 2,
"predicted_ER": 2
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20261007_TB@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"
}
} |
| 20261008 | 20261008_CLE@CHW | away | Parker Messick | Parker Messick | True | 5.0 | 2.1 | -8 | 3 | 2 | -1 | 5/2 | 3/4 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5961538461538463,
"WHIP": 1.06993006993007,
"IP": 190.2,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 5.778,
"recent_avg_IP": 4.733,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5409,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0229,
"walk_factor": 0.948,
"homer_factor": 0.9086,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 6.6,
"woba": 0.274,
"xwoba": 0.275,
"barrel_percent": 5.0,
"hard_hit_percent": 34.3,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": 81,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 190.2,
"season_ERA": 2.596,
"season_WHIP": 1.07,
"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": 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": "800048",
"report_date": "20261008",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 8.0,
"R": 8.0,
"H": 25.0,
"BB": 6.0,
"SO": 26.0,
"HR": 2.0,
"BF": 102.0,
"Pitches": 428.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 1.6,
"H": 5.0,
"BB": 1.2,
"SO": 5.2,
"HR": 0.4,
"BF": 20.4,
"Pitches": 85.6
},
"rates": {
"ERA": 3.0423,
"WHIP": 1.3099,
"ER_per_IP": 0.33803,
"H_per_IP": 1.05634,
"BB_per_IP": 0.25352,
"SO_per_IP": 1.09859,
"HR_per_IP": 0.08451
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 16.0,
"R": 16.0,
"H": 49.0,
"BB": 13.0,
"SO": 63.0,
"HR": 5.0,
"BF": 223.0,
"Pitches": 930.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.9,
"BB": 1.3,
"SO": 6.3,
"HR": 0.5,
"BF": 22.3,
"Pitches": 93.0
},
"rates": {
"ERA": 2.6667,
"WHIP": 1.1481,
"ER_per_IP": 0.2963,
"H_per_IP": 0.90741,
"BB_per_IP": 0.24074,
"SO_per_IP": 1.16667,
"HR_per_IP": 0.09259
}
},
"season": {
"games": 33,
"totals": {
"IP": 190.2,
"ER": 55.0,
"R": 59.0,
"H": 153.0,
"BB": 51.0,
"SO": 199.0,
"HR": 18.0,
"BF": 765.0,
"Pitches": 3035.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6667,
"R": 1.7879,
"H": 4.6364,
"BB": 1.5455,
"SO": 6.0303,
"HR": 0.5455,
"BF": 23.1818,
"Pitches": 91.9697
},
"rates": {
"ERA": 2.5962,
"WHIP": 1.0699,
"ER_per_IP": 0.28846,
"H_per_IP": 0.80245,
"BB_per_IP": 0.26748,
"SO_per_IP": 1.04371,
"HR_per_IP": 0.09441
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.773,
"predicted_H": 4.997,
"predicted_BB": 1.403,
"predicted_SO": 5.678,
"predicted_HR": 0.506,
"predicted_ERA": 3.0585,
"predicted_WHIP": 1.2263
}
},
"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": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.773,
"final": 1.4595,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.997,
"final": 4.5926,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.403,
"final": 1.6451,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.678,
"final": 5.403,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.506,
"final": 0.3008,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0585,
"final": 3.0585,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2263,
"final": 1.2263,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 16,
"H": 49,
"BB": 13,
"SO": 63,
"HR": 5,
"ERA": 2.666666666666667,
"WHIP": 1.1481481481481484,
"K9": 10.500000000000002,
"HR9": 0.8333333333333335,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-03T00:00:00"
},
"recent_form_boost": 0.7885506273386286,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.9467,
"BB": 0.2596,
"SO": 1.0749,
"HR": 0.0888
},
"source": "recent_role_blend",
"tto_penalty": 1.0027,
"role_avg_IP": 5.778,
"recent_avg_IP": 4.733
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 5.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": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0002,
"run_prevention": 1.0015,
"strikeout": 0.9948
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.0229,
"walk_factor": 0.948,
"homer_factor": 0.9086,
"run_prevention_factor": 0.954,
"quality_score": 0.5409
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0029,
"BB": 1.1307,
"SO": 1.2219,
"HR": 1.1428
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0186,
"SO": 1.0727,
"HR": 1.0
},
"earned_run_factor": 1.0034,
"before": {
"H": 4.595,
"BB": 1.259,
"SO": 5.182,
"HR": 0.433,
"ER": 1.541,
"ERA": 2.862
},
"after": {
"H": 4.595,
"BB": 1.2824,
"SO": 5.5587,
"HR": 0.433,
"ER": 1.5462,
"ERA": 2.871
},
"by_hitter": [
{
"hitter": "Chase Meidroth",
"plate_appearances": 4.253,
"stand": "R",
"H_batter": 1.0735,
"H_platoon": 1.012,
"H_bvp": 1.0103,
"BB_batter": 1.0581,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 0.9985,
"SO_platoon": 0.9783,
"SO_bvp": 0.9924,
"HR_batter": 0.892,
"HR_platoon": 1.0116,
"HR_bvp": 0.925,
"bvp_at_bats": 15.0,
"combined": {
"H": 1.0976,
"BB": 1.1216,
"SO": 0.9694,
"HR": 0.8347
}
},
{
"hitter": "Randal Grichuk",
"plate_appearances": 4.146,
"stand": "R",
"H_batter": 1.0819,
"H_platoon": 1.012,
"H_bvp": 1.0495,
"BB_batter": 0.6317,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 0.9886,
"SO_platoon": 0.9783,
"SO_bvp": 0.9597,
"HR_batter": 1.3663,
"HR_platoon": 1.0116,
"HR_bvp": 0.9351,
"bvp_at_bats": 12.0,
"combined": {
"H": 1.1491,
"BB": 0.6696,
"SO": 0.9282,
"HR": 1.2924
}
},
{
"hitter": "Miguel Vargas",
"plate_appearances": 4.128,
"stand": "R",
"H_batter": 0.9705,
"H_platoon": 1.012,
"H_bvp": 0.9722,
"BB_batter": 1.5813,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 0.8235,
"SO_platoon": 0.9783,
"SO_bvp": 1.0067,
"HR_batter": 1.3634,
"HR_platoon": 1.0116,
"HR_bvp": 1.0452,
"bvp_at_bats": 14.0,
"combined": {
"H": 0.9548,
"BB": 1.6762,
"SO": 0.811,
"HR": 1.4416
}
},
{
"hitter": "Munetaka Murakami",
"plate_appearances": 4.202,
"stand": "L",
"H_batter": 0.8899,
"H_platoon": 1.0333,
"H_bvp": 1.0,
"BB_batter": 1.7067,
"BB_platoon": 0.9101,
"BB_bvp": 1.0,
"SO_batter": 1.5628,
"SO_platoon": 1.0429,
"SO_bvp": 1.0,
"HR_batter": 1.7274,
"HR_platoon": 0.9608,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9195,
"BB": 1.5533,
"SO": 1.6298,
"HR": 1.6597
}
},
{
"hitter": "Tommy Pham",
"plate_appearances": 3.453,
"stand": "R",
"H_batter": 0.9603,
"H_platoon": 1.012,
"H_bvp": 1.0,
"BB_batter": 1.12,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 1.1736,
"SO_platoon": 0.9783,
"SO_bvp": 1.0,
"HR_batter": 0.9823,
"HR_platoon": 1.0116,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9718,
"BB": 1.1872,
"SO": 1.1481,
"HR": 0.9937
}
},
{
"hitter": "Brenton Doyle",
"plate_appearances": 3.907,
"stand": "R",
"H_batter": 1.0012,
"H_platoon": 1.012,
"H_bvp": 0.9908,
"BB_batter": 0.7446,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 1.3697,
"SO_platoon": 0.9783,
"SO_bvp": 1.0247,
"HR_batter": 0.9355,
"HR_platoon": 1.0116,
"HR_bvp": 0.9613,
"bvp_at_bats": 6.0,
"combined": {
"H": 1.0039,
"BB": 0.7893,
"SO": 1.3731,
"HR": 0.9097
}
},
{
"hitter": "Kyle Teel",
"plate_appearances": 3.832,
"stand": "L",
"H_batter": 0.9651,
"H_platoon": 1.0333,
"H_bvp": 1.0,
"BB_batter": 1.1529,
"BB_platoon": 0.9101,
"BB_bvp": 1.0,
"SO_batter": 1.491,
"SO_platoon": 1.0429,
"SO_bvp": 1.0,
"HR_batter": 1.0022,
"HR_platoon": 0.9608,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9972,
"BB": 1.0493,
"SO": 1.555,
"HR": 0.9629
}
},
{
"hitter": "Braden Montgomery",
"plate_appearances": 3.72,
"stand": "R",
"H_batter": 0.9623,
"H_platoon": 1.012,
"H_bvp": 1.0092,
"BB_batter": 1.1267,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 0.9425,
"SO_platoon": 0.9783,
"SO_bvp": 1.0669,
"HR_batter": 0.7079,
"HR_platoon": 1.0116,
"HR_bvp": 1.15,
"bvp_at_bats": 6.0,
"combined": {
"H": 0.9828,
"BB": 1.1943,
"SO": 0.9837,
"HR": 0.8235
}
},
{
"hitter": "Colson Montgomery",
"plate_appearances": 3.593,
"stand": "L",
"H_batter": 0.8997,
"H_platoon": 1.0333,
"H_bvp": 1.001,
"BB_batter": 0.9785,
"BB_platoon": 0.9101,
"BB_bvp": 1.0,
"SO_batter": 1.545,
"SO_platoon": 1.0429,
"SO_bvp": 1.0258,
"HR_batter": 1.4416,
"HR_platoon": 0.9608,
"HR_bvp": 0.9429,
"bvp_at_bats": 10.0,
"combined": {
"H": 0.9306,
"BB": 0.8905,
"SO": 1.6529,
"HR": 1.306
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"applied": false,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 20.395
},
"player_attribution": null
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.5462,
"market_implied": 1.7257,
"market_multiplier": 1.1161,
"weight": 0.4939,
"effective_multiplier": 1.0558,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.5147,
"model_p_over": 0.4575,
"implied_multiplier": 1.1161
}
]
},
"H": {
"model": 4.595,
"market_implied": 4.0444,
"market_multiplier": 0.8802,
"weight": 0.4985,
"effective_multiplier": 0.9384,
"lines": [
3.5
],
"books": 3,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 3.5,
"books": 3,
"market_p_over": 0.5752,
"model_p_over": 0.6735,
"implied_multiplier": 0.8802
}
]
},
"OUTS": {
"model": 14.541,
"market_implied": 15.6891,
"market_multiplier": 1.079,
"weight": 0.5137,
"effective_multiplier": 1.0398,
"lines": [
14.5
],
"books": 6,
"props": [
{
"market": "pitcher_outs",
"point": 14.5,
"books": 6,
"market_p_over": 0.5906,
"model_p_over": 0.4794,
"implied_multiplier": 1.079
}
]
},
"SO": {
"model": 5.5587,
"market_implied": 5.9397,
"market_multiplier": 1.0685,
"weight": 0.5763,
"effective_multiplier": 1.0389,
"lines": [
5.5
],
"books": 7,
"props": [
{
"market": "pitcher_strikeouts",
"point": 5.5,
"books": 7,
"market_p_over": 0.5446,
"model_p_over": 0.4811,
"implied_multiplier": 1.0685
}
]
},
"BB": {
"model": 1.2824,
"market_implied": 1.8378,
"market_multiplier": 1.4331,
"weight": 0.5697,
"effective_multiplier": 1.2275,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.5483,
"model_p_over": 0.3669,
"implied_multiplier": 1.4331
}
]
}
},
"expected_before": {
"SO": 5.5587,
"H": 4.595,
"BB": 1.2824,
"ER": 1.5462,
"IP": 4.847,
"ERA": 2.871
},
"expected_after": {
"SO": 5.7752,
"H": 4.3118,
"BB": 1.5742,
"ER": 1.6324,
"IP": 5.04,
"ERA": 2.915
},
"line": {
"IP": 6.0,
"H": 4,
"ER": 1,
"BB": 2,
"SO": 5,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.0,
"H": 4,
"R": 1,
"ER": 1,
"BB": 2,
"SO": 6,
"HR": 0
},
"stats": {
"IP": 5.0,
"H": 5,
"R": 4,
"ER": 3,
"BB": 3,
"SO": 4,
"HR": 1,
"BF": 24,
"Pitches": 97
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_ER",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_ER",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.0062,
"offense_edge": -0.0673,
"opponent_offense_edge": 0.0675,
"defense_strength": 0.0898,
"opponent_defense_weakness": -0.0096,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0002,
"run_prevention": 1.0015,
"strikeout": 0.9948
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 705.0,
"k_percent": 25.8,
"bb_percent": 6.6,
"woba": 0.274,
"xwoba": 0.275,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 34.3,
"avg_best_speed": 76.3542,
"avg_hyper_speed": 93.484,
"whiff_percent": 25.5,
"swing_percent": 48.6
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7912,
"command_and_miss": 0.3829,
"regression_edge": -0.0286,
"xwoba_edge": 1.0571,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.5143,
"whiff_edge": 0.0429,
"bb_edge": 0.65,
"pitch_design_score": 0.0142
},
"quality_score": 0.5409,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0229,
"walk_factor": 0.948,
"homer_factor": 0.9086,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800048",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.954,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9086,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0229,
"adjusted": 6
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 5.0,
"H": 5,
"R": 4,
"ER": 3,
"BB": 3,
"SO": 4,
"HR": 1,
"BF": 24,
"Pitches": 97,
"source": "play_by_play_realizer_v1",
"predicted_R": 4,
"predicted_ER": 3
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20261008_CLE@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261008 | 20261008_CLE@CHW | home | Hagen Smith | Hagen Smith | True | 2.2 | 0.2 | -6 | 0 | 0 | 0 | 1/0 | 1/3 | 3/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.0485436893203883,
"WHIP": 0.9902912621359222,
"IP": 34.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 2.556,
"recent_avg_IP": 2.556,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4816,
"sample_weight": 0.45,
"run_prevention_factor": 0.9591,
"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": 105,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 34.1,
"season_ERA": 1.049,
"season_WHIP": 0.99,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.09,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5864,
"prior_weight": 0.4136
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696146",
"report_date": "20261008",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.0,
"ER": 2.0,
"R": 2.0,
"H": 5.0,
"BB": 6.0,
"SO": 9.0,
"HR": 0.0,
"BF": 38.0,
"Pitches": 161.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4,
"R": 0.4,
"H": 1.0,
"BB": 1.2,
"SO": 1.8,
"HR": 0.0,
"BF": 7.6,
"Pitches": 32.2
},
"rates": {
"ERA": 2.0,
"WHIP": 1.2222,
"ER_per_IP": 0.22222,
"H_per_IP": 0.55556,
"BB_per_IP": 0.66667,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 16.1,
"ER": 4.0,
"R": 4.0,
"H": 7.0,
"BB": 11.0,
"SO": 21.0,
"HR": 0.0,
"BF": 67.0,
"Pitches": 276.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4,
"R": 0.4,
"H": 0.7,
"BB": 1.1,
"SO": 2.1,
"HR": 0.0,
"BF": 6.7,
"Pitches": 27.6
},
"rates": {
"ERA": 2.2041,
"WHIP": 1.102,
"ER_per_IP": 0.2449,
"H_per_IP": 0.42857,
"BB_per_IP": 0.67347,
"SO_per_IP": 1.28571,
"HR_per_IP": 0.0
}
},
"season": {
"games": 20,
"totals": {
"IP": 34.1,
"ER": 4.0,
"R": 4.0,
"H": 13.0,
"BB": 21.0,
"SO": 47.0,
"HR": 0.0,
"BF": 136.0,
"Pitches": 575.0
},
"per_game": {
"IP": 1.2,
"ER": 0.2,
"R": 0.2,
"H": 0.65,
"BB": 1.05,
"SO": 2.35,
"HR": 0.0,
"BF": 6.8,
"Pitches": 28.75
},
"rates": {
"ERA": 1.0485,
"WHIP": 0.9903,
"ER_per_IP": 0.1165,
"H_per_IP": 0.37864,
"BB_per_IP": 0.61165,
"SO_per_IP": 1.36893,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.02,
"predicted_H": 2.09,
"predicted_BB": 1.654,
"predicted_SO": 3.273,
"predicted_HR": 0.186,
"predicted_ERA": 3.0147,
"predicted_WHIP": 1.2294
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5247,
"form_weight": 0.4753,
"form_reliability": 0.5864,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.09,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5864,
"prior_weight": 0.4136
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.02,
"final": 1.5343,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.09,
"final": 2.5675,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.654,
"final": 1.3108,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.273,
"final": 3.1297,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.186,
"final": 0.0884,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0147,
"final": 3.0147,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2294,
"final": 1.2294,
"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": 16.1,
"ER": 4,
"H": 7,
"BB": 11,
"SO": 21,
"HR": 0,
"ERA": 2.204081632653061,
"WHIP": 1.1020408163265305,
"K9": 11.57142857142857,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-07T00:00:00"
},
"recent_form_boost": 0.8549807438135085,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.8625,
"BB": 0.3834,
"SO": 0.9631,
"HR": 0.1088
},
"source": "recent_role_blend",
"tto_penalty": 0.9965,
"role_avg_IP": 2.556,
"recent_avg_IP": 2.556
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.09,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5864,
"prior_weight": 0.4136
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0027,
"run_prevention": 0.9886,
"strikeout": 1.0052
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.0674,
"walk_factor": 1.0477,
"homer_factor": 0.921,
"run_prevention_factor": 0.9591,
"quality_score": 0.4816
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0373,
"BB": 1.0065,
"SO": 0.8222,
"HR": 0.9144
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.001,
"SO": 0.9338,
"HR": 1.0
},
"earned_run_factor": 1.0003,
"before": {
"H": 3.357,
"BB": 1.492,
"SO": 3.813,
"HR": 0.423,
"ER": 1.467,
"ERA": 3.343
},
"after": {
"H": 3.357,
"BB": 1.4935,
"SO": 3.5606,
"HR": 0.423,
"ER": 1.4674,
"ERA": 3.345
},
"by_hitter": [
{
"hitter": "Steven Kwan",
"plate_appearances": 4.393,
"stand": "L",
"H_batter": 1.0528,
"H_platoon": 1.0333,
"H_bvp": 1.0,
"BB_batter": 1.4337,
"BB_platoon": 0.9101,
"BB_bvp": 1.0,
"SO_batter": 0.46,
"SO_platoon": 1.0429,
"SO_bvp": 1.0,
"HR_batter": 0.4016,
"HR_platoon": 0.9608,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0879,
"BB": 1.3048,
"SO": 0.4797,
"HR": 0.3859
}
},
{
"hitter": "Jos\u00e9 Ram\u00edrez",
"plate_appearances": 4.453,
"stand": "R",
"H_batter": 0.9647,
"H_platoon": 1.012,
"H_bvp": 1.0,
"BB_batter": 1.2545,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 0.6234,
"SO_platoon": 0.9783,
"SO_bvp": 1.0,
"HR_batter": 0.8131,
"HR_platoon": 1.0116,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9763,
"BB": 1.3298,
"SO": 0.6099,
"HR": 0.8225
}
},
{
"hitter": "Chase DeLauter",
"plate_appearances": 4.268,
"stand": "L",
"H_batter": 1.0803,
"H_platoon": 1.0333,
"H_bvp": 1.0,
"BB_batter": 1.1647,
"BB_platoon": 0.9101,
"BB_bvp": 1.0,
"SO_batter": 0.6848,
"SO_platoon": 1.0429,
"SO_bvp": 1.0,
"HR_batter": 0.9625,
"HR_platoon": 0.9608,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.1163,
"BB": 1.06,
"SO": 0.7142,
"HR": 0.9248
}
},
{
"hitter": "Jo Adell",
"plate_appearances": 4.258,
"stand": "R",
"H_batter": 1.0033,
"H_platoon": 1.012,
"H_bvp": 1.0,
"BB_batter": 0.6785,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 1.0861,
"SO_platoon": 0.9783,
"SO_bvp": 1.0,
"HR_batter": 1.0919,
"HR_platoon": 1.0116,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0153,
"BB": 0.7192,
"SO": 1.0625,
"HR": 1.1046
}
},
{
"hitter": "Nathaniel Lowe",
"plate_appearances": 3.846,
"stand": "L",
"H_batter": 1.0008,
"H_platoon": 1.0333,
"H_bvp": 1.0,
"BB_batter": 1.0426,
"BB_platoon": 0.9101,
"BB_bvp": 1.0,
"SO_batter": 1.0305,
"SO_platoon": 1.0429,
"SO_bvp": 1.0,
"HR_batter": 1.146,
"HR_platoon": 0.9608,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0341,
"BB": 0.9489,
"SO": 1.0747,
"HR": 1.1011
}
},
{
"hitter": "Angel Mart\u00ednez",
"plate_appearances": 4.131,
"stand": "R",
"H_batter": 1.0314,
"H_platoon": 1.012,
"H_bvp": 1.0,
"BB_batter": 0.5013,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 1.037,
"SO_platoon": 0.9783,
"SO_bvp": 1.0,
"HR_batter": 1.2476,
"HR_platoon": 1.0116,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0438,
"BB": 0.5314,
"SO": 1.0145,
"HR": 1.2621
}
},
{
"hitter": "Travis Bazzana",
"plate_appearances": 3.804,
"stand": "L",
"H_batter": 0.9742,
"H_platoon": 1.0333,
"H_bvp": 1.0,
"BB_batter": 1.2138,
"BB_platoon": 0.9101,
"BB_bvp": 1.0,
"SO_batter": 0.9334,
"SO_platoon": 1.0429,
"SO_bvp": 1.0,
"HR_batter": 0.9662,
"HR_platoon": 0.9608,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0066,
"BB": 1.1047,
"SO": 0.9734,
"HR": 0.9283
}
},
{
"hitter": "Austin Hedges",
"plate_appearances": 3.413,
"stand": "R",
"H_batter": 0.9971,
"H_platoon": 1.012,
"H_bvp": 1.0,
"BB_batter": 1.146,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 0.8703,
"SO_platoon": 0.9783,
"SO_bvp": 1.0,
"HR_batter": 0.9038,
"HR_platoon": 1.0116,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0091,
"BB": 1.2148,
"SO": 0.8514,
"HR": 0.9143
}
},
{
"hitter": "Brayan Rocchio",
"plate_appearances": 3.593,
"stand": "R",
"H_batter": 1.0264,
"H_platoon": 1.012,
"H_bvp": 1.0,
"BB_batter": 0.7773,
"BB_platoon": 1.06,
"BB_bvp": 1.0,
"SO_batter": 0.6829,
"SO_platoon": 0.9783,
"SO_bvp": 1.0,
"HR_batter": 0.8134,
"HR_platoon": 1.0116,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0387,
"BB": 0.8239,
"SO": 0.6681,
"HR": 0.8228
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"applied": false,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 16.693
},
"player_attribution": null
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.4674,
"market_implied": 0.4674,
"market_multiplier": 0.3185,
"weight": 0.4939,
"effective_multiplier": 0.5683,
"lines": [
0.5
],
"books": 2,
"props": [
{
"market": "pitcher_earned_runs",
"point": 0.5,
"books": 2,
"market_p_over": 0.3734,
"model_p_over": 0.7695,
"implied_multiplier": 0.3185
}
]
},
"H": {
"model": 3.357,
"market_implied": 1.4486,
"market_multiplier": 0.4315,
"weight": 0.4985,
"effective_multiplier": 0.6577,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 1.5,
"books": 3,
"market_p_over": 0.4248,
"model_p_over": 0.8482,
"implied_multiplier": 0.4315
}
]
},
"OUTS": {
"model": 11.844,
"market_implied": 6.0653,
"market_multiplier": 0.5121,
"weight": 0.5137,
"effective_multiplier": 0.7091,
"lines": [
5.5
],
"books": 6,
"props": [
{
"market": "pitcher_outs",
"point": 5.5,
"books": 6,
"market_p_over": 0.5648,
"model_p_over": 0.9776,
"implied_multiplier": 0.5121
}
]
},
"SO": {
"model": 3.5606,
"market_implied": 2.161,
"market_multiplier": 0.6069,
"weight": 0.5763,
"effective_multiplier": 0.7499,
"lines": [
1.5,
2.5
],
"books": 4,
"props": [
{
"market": "pitcher_strikeouts",
"point": 1.5,
"books": 2,
"market_p_over": 0.6007,
"model_p_over": 0.8704,
"implied_multiplier": 0.5688
},
{
"market": "pitcher_strikeouts",
"point": 2.5,
"books": 2,
"market_p_over": 0.4055,
"model_p_over": 0.6902,
"implied_multiplier": 0.6476
}
]
},
"BB": {
"model": 1.4935,
"market_implied": 0.8144,
"market_multiplier": 0.5453,
"weight": 0.5697,
"effective_multiplier": 0.7079,
"lines": [
0.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 0.5,
"books": 2,
"market_p_over": 0.5571,
"model_p_over": 0.7754,
"implied_multiplier": 0.5453
}
]
}
},
"expected_before": {
"SO": 3.5606,
"H": 3.357,
"BB": 1.4935,
"ER": 1.4674,
"IP": 3.948,
"ERA": 3.345
},
"expected_after": {
"SO": 2.6702,
"H": 2.208,
"BB": 1.0572,
"ER": 0.8339,
"IP": 2.7994,
"ERA": 2.681
},
"line": {
"IP": 5.0,
"H": 3,
"ER": 2,
"BB": 1,
"SO": 3,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 5.0,
"H": 3,
"R": 2,
"ER": 2,
"BB": 1,
"SO": 3,
"HR": 0
},
"stats": {
"IP": 2.2,
"H": 1,
"R": 0,
"ER": 0,
"BB": 1,
"SO": 3,
"HR": 0,
"BF": 10,
"Pitches": 38
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "696146",
"player_name": "Hagen Smith",
"position": "Starter",
"team": "CHW",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 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
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 2.2,
"predicted_R": 0.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 2.2,
"delta": -2.8,
"percent_delta": -0.56,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 2.2,
"delta": -2.8,
"percent_delta": -0.56,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 2.2,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 2.2,
"delta": -2.8,
"percent_delta": -0.56,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 2.2,
"delta": -2.8,
"percent_delta": -0.56,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.0062,
"offense_edge": 0.0675,
"opponent_offense_edge": -0.0673,
"defense_strength": 0.0096,
"opponent_defense_weakness": -0.0898,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0027,
"run_prevention": 0.9886,
"strikeout": 1.0052
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4885,
"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.0
},
"quality_score": 0.4816,
"sample_weight": 0.45,
"run_prevention_factor": 0.9591,
"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": 2.0,
"factor": 0.9816,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9816,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0215,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9645,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0303,
"adjusted": 4
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 2.2,
"H": 1,
"R": 0,
"ER": 0,
"BB": 1,
"SO": 3,
"HR": 0,
"BF": 10,
"Pitches": 38,
"source": "play_by_play_realizer_v1",
"predicted_R": 0,
"predicted_ER": 0
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"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/20261008_CLE@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261010 | 20261010_CHW@CLE | away | Sean Burke | Sean Burke | True | 4.1 | 5.0 | 2 | 5 | 2 | -3 | 7/4 | 3/0 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3688073394495412,
"WHIP": 1.1669724770642202,
"IP": 181.2,
"games_started": null,
"games_pitched": 34,
"role_avg_IP": 5.226,
"recent_avg_IP": 4.467,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1206,
"sample_weight": 1.0,
"run_prevention_factor": 0.9898,
"strikeout_factor": 1.0229,
"walk_factor": 0.99,
"homer_factor": 1.0144,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 8.7,
"woba": 0.302,
"xwoba": 0.3,
"barrel_percent": 8.3,
"hard_hit_percent": 38.8,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": 90,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680732",
"report_date": "20261010",
"season_year": 2026,
"rows_used": 34,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 6.0,
"R": 7.0,
"H": 18.0,
"BB": 7.0,
"SO": 30.0,
"HR": 4.0,
"BF": 101.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.0,
"ER": 1.2,
"R": 1.4,
"H": 3.6,
"BB": 1.4,
"SO": 6.0,
"HR": 0.8,
"BF": 20.2,
"Pitches": 87.0
},
"rates": {
"ERA": 2.1039,
"WHIP": 0.974,
"ER_per_IP": 0.23377,
"H_per_IP": 0.7013,
"BB_per_IP": 0.27273,
"SO_per_IP": 1.16883,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.0,
"ER": 23.0,
"R": 24.0,
"H": 41.0,
"BB": 24.0,
"SO": 47.0,
"HR": 7.0,
"BF": 200.0,
"Pitches": 849.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3,
"R": 2.4,
"H": 4.1,
"BB": 2.4,
"SO": 4.7,
"HR": 0.7,
"BF": 20.0,
"Pitches": 84.9
},
"rates": {
"ERA": 4.5,
"WHIP": 1.413,
"ER_per_IP": 0.5,
"H_per_IP": 0.8913,
"BB_per_IP": 0.52174,
"SO_per_IP": 1.02174,
"HR_per_IP": 0.15217
}
},
"season": {
"games": 34,
"totals": {
"IP": 181.2,
"ER": 68.0,
"R": 71.0,
"H": 149.0,
"BB": 63.0,
"SO": 199.0,
"HR": 22.0,
"BF": 750.0,
"Pitches": 3033.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0882,
"H": 4.3824,
"BB": 1.8529,
"SO": 5.8529,
"HR": 0.6471,
"BF": 22.0588,
"Pitches": 89.2059
},
"rates": {
"ERA": 3.3688,
"WHIP": 1.167,
"ER_per_IP": 0.37431,
"H_per_IP": 0.82018,
"BB_per_IP": 0.34679,
"SO_per_IP": 1.09541,
"HR_per_IP": 0.1211
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.861,
"predicted_H": 4.047,
"predicted_BB": 1.862,
"predicted_SO": 5.358,
"predicted_HR": 0.732,
"predicted_ERA": 3.3797,
"predicted_WHIP": 1.1921
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4042,
"form_weight": 0.5958,
"form_reliability": 0.8718,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.861,
"final": 2.3213,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.047,
"final": 4.4322,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.862,
"final": 1.1094,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.358,
"final": 4.405,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.732,
"final": 0.8403,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3797,
"final": 3.3797,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1921,
"final": 1.1921,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 46.0,
"ER": 23,
"H": 41,
"BB": 24,
"SO": 47,
"HR": 7,
"ERA": 4.5,
"WHIP": 1.4130434782608696,
"K9": 9.195652173913043,
"HR9": 1.3695652173913044,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-05T00:00:00"
},
"recent_form_boost": 1.000251287194822,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.9389,
"BB": 0.4126,
"SO": 1.1913,
"HR": 0.1571
},
"source": "recent_role_blend",
"tto_penalty": 1.001,
"role_avg_IP": 5.226,
"recent_avg_IP": 4.467
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0027,
"run_prevention": 0.9885,
"strikeout": 1.0052
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.0229,
"walk_factor": 0.99,
"homer_factor": 1.0144,
"run_prevention_factor": 0.9898,
"quality_score": 0.1206
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 0.9982,
"BB": 1.0548,
"SO": 0.8252,
"HR": 0.9055
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.008,
"SO": 0.935,
"HR": 1.0
},
"earned_run_factor": 1.0019,
"before": {
"H": 4.216,
"BB": 1.853,
"SO": 5.441,
"HR": 0.706,
"ER": 2.187,
"ERA": 4.321
},
"after": {
"H": 4.216,
"BB": 1.8678,
"SO": 5.0873,
"HR": 0.706,
"ER": 2.1911,
"ERA": 4.329
},
"by_hitter": [
{
"hitter": "Steven Kwan",
"plate_appearances": 4.365,
"stand": "L",
"H_batter": 1.0522,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 1.4546,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.4567,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 0.3989,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.042,
"BB": 1.492,
"SO": 0.4514,
"HR": 0.4031
}
},
{
"hitter": "Jos\u00e9 Ram\u00edrez",
"plate_appearances": 4.481,
"stand": "L",
"H_batter": 0.9687,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 1.2451,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.6183,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 0.8487,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9593,
"BB": 1.2771,
"SO": 0.6112,
"HR": 0.8577
}
},
{
"hitter": "Chase DeLauter",
"plate_appearances": 4.268,
"stand": "L",
"H_batter": 1.0795,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 1.1728,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.6794,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 0.9568,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.069,
"BB": 1.2029,
"SO": 0.6716,
"HR": 0.9669
}
},
{
"hitter": "Jo Adell",
"plate_appearances": 4.287,
"stand": "R",
"H_batter": 1.003,
"H_platoon": 0.9929,
"H_bvp": 1.0,
"BB_batter": 0.6883,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 1.0849,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.0863,
"HR_platoon": 0.9986,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9959,
"BB": 0.6549,
"SO": 1.1026,
"HR": 1.0848
}
},
{
"hitter": "Nathaniel Lowe",
"plate_appearances": 3.874,
"stand": "L",
"H_batter": 1.005,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 1.0538,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.02,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 1.138,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9953,
"BB": 1.0809,
"SO": 1.0083,
"HR": 1.1501
}
},
{
"hitter": "Travis Bazzana",
"plate_appearances": 3.88,
"stand": "L",
"H_batter": 0.975,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 1.2063,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.927,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 0.9613,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": 9.0,
"combined": {
"H": 0.9655,
"BB": 1.2373,
"SO": 0.9163,
"HR": 0.9715
}
},
{
"hitter": "Patrick Bailey",
"plate_appearances": 3.832,
"stand": "L",
"H_batter": 0.9708,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 0.9153,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.1796,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 1.0382,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9614,
"BB": 0.9388,
"SO": 1.166,
"HR": 1.0492
}
},
{
"hitter": "Petey Halpin",
"plate_appearances": 3.637,
"stand": "L",
"H_batter": 0.9855,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 0.6616,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.9014,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 0.8781,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9759,
"BB": 0.6786,
"SO": 0.891,
"HR": 0.8874
}
},
{
"hitter": "Brayan Rocchio",
"plate_appearances": 3.565,
"stand": "L",
"H_batter": 1.0229,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 0.8049,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.6787,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 0.8095,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.013,
"BB": 0.8256,
"SO": 0.6709,
"HR": 0.8181
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"applied": false,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 19.734
},
"player_attribution": null
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 2.1911,
"market_implied": 1.5701,
"market_multiplier": 0.7166,
"weight": 0.5183,
"effective_multiplier": 0.8414,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.4653,
"model_p_over": 0.6433,
"implied_multiplier": 0.7166
}
]
},
"H": {
"model": 4.216,
"market_implied": 3.41,
"market_multiplier": 0.8088,
"weight": 0.5533,
"effective_multiplier": 0.8892,
"lines": [
3.5
],
"books": 4,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 3.5,
"books": 4,
"market_p_over": 0.4438,
"model_p_over": 0.6076,
"implied_multiplier": 0.8088
}
]
},
"OUTS": {
"model": 13.665,
"market_implied": 12.4456,
"market_multiplier": 0.9108,
"weight": 0.5467,
"effective_multiplier": 0.9502,
"lines": [
12.5
],
"books": 6,
"props": [
{
"market": "pitcher_outs",
"point": 12.5,
"books": 6,
"market_p_over": 0.4736,
"model_p_over": 0.605,
"implied_multiplier": 0.9108
}
]
},
"SO": {
"model": 5.0873,
"market_implied": 3.9389,
"market_multiplier": 0.7743,
"weight": 0.5833,
"effective_multiplier": 0.8614,
"lines": [
3.5
],
"books": 7,
"props": [
{
"market": "pitcher_strikeouts",
"point": 3.5,
"books": 7,
"market_p_over": 0.5545,
"model_p_over": 0.747,
"implied_multiplier": 0.7743
}
]
},
"BB": {
"model": 1.8678,
"market_implied": 1.4039,
"market_multiplier": 0.7517,
"weight": 0.5798,
"effective_multiplier": 0.8475,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.4095,
"model_p_over": 0.557,
"implied_multiplier": 0.7517
}
]
}
},
"expected_before": {
"SO": 5.0873,
"H": 4.216,
"BB": 1.8678,
"ER": 2.1911,
"IP": 4.555,
"ERA": 4.329
},
"expected_after": {
"SO": 4.382,
"H": 3.749,
"BB": 1.5829,
"ER": 1.8435,
"IP": 4.3281,
"ERA": 3.833
},
"line": {
"IP": 5.0,
"H": 5,
"ER": 3,
"BB": 0,
"SO": 3,
"HR": 1
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.0,
"H": 5,
"R": 3,
"ER": 3,
"BB": 0,
"SO": 3,
"HR": 1
},
"stats": {
"IP": 4.1,
"H": 7,
"R": 6,
"ER": 5,
"BB": 3,
"SO": 5,
"HR": 2,
"BF": 25,
"Pitches": 101
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "680732",
"player_name": "Sean Burke",
"position": "Starter",
"team": "CHW",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_IP",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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": 6.0,
"after": 4.1,
"delta": -1.9,
"percent_delta": -0.3167,
"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": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 4.1,
"delta": -1.9,
"percent_delta": -0.3167,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.0062,
"offense_edge": 0.0673,
"opponent_offense_edge": -0.0675,
"defense_strength": 0.0098,
"opponent_defense_weakness": -0.0901,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0027,
"run_prevention": 0.9885,
"strikeout": 1.0052
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 644.0,
"k_percent": 25.8,
"bb_percent": 8.7,
"woba": 0.302,
"xwoba": 0.3,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 38.8,
"avg_best_speed": 79.3949,
"avg_hyper_speed": 93.9697,
"whiff_percent": 25.5,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0779,
"command_and_miss": 0.2779,
"regression_edge": 0.0571,
"xwoba_edge": 0.3429,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.1286,
"whiff_edge": 0.0429,
"bb_edge": 0.125,
"pitch_design_score": -0.0129
},
"quality_score": 0.1206,
"sample_weight": 1.0,
"run_prevention_factor": 0.9898,
"strikeout_factor": 1.0229,
"walk_factor": 0.99,
"homer_factor": 1.0144,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680732",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9898,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9898,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.99,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0144,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0229,
"adjusted": 6
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 4.1,
"H": 7,
"R": 6,
"ER": 5,
"BB": 3,
"SO": 5,
"HR": 2,
"BF": 25,
"Pitches": 101,
"source": "play_by_play_realizer_v1",
"predicted_R": 6,
"predicted_ER": 5
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20261010_CHW@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261010 | 20261010_CHW@CLE | home | Gavin Williams | Gavin Williams | True | 4.2 | 5.2 | 3 | 1 | 0 | -1 | 2/1 | 4/2 | 10/12 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7355516637478106,
"WHIP": 1.1190893169877407,
"IP": 190.1,
"games_started": null,
"games_pitched": 34,
"role_avg_IP": 5.737,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9812,
"strikeout_factor": 1.1069,
"walk_factor": 0.98,
"homer_factor": 1.1158,
"regression_flag": "neutral",
"k_percent": 33.2,
"bb_percent": 8.2,
"woba": 0.294,
"xwoba": 0.302,
"barrel_percent": 11.4,
"hard_hit_percent": 46.6,
"whiff_percent": 32.8
},
"espn_rank": {
"rank": 79,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "668909",
"report_date": "20261010",
"season_year": 2026,
"rows_used": 34,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 8.0,
"R": 8.0,
"H": 17.0,
"BB": 11.0,
"SO": 32.0,
"HR": 1.0,
"BF": 90.0,
"Pitches": 392.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 1.6,
"H": 3.4,
"BB": 2.2,
"SO": 6.4,
"HR": 0.2,
"BF": 18.0,
"Pitches": 78.4
},
"rates": {
"ERA": 3.375,
"WHIP": 1.3125,
"ER_per_IP": 0.375,
"H_per_IP": 0.79688,
"BB_per_IP": 0.51562,
"SO_per_IP": 1.5,
"HR_per_IP": 0.04688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.2,
"ER": 22.0,
"R": 23.0,
"H": 40.0,
"BB": 23.0,
"SO": 75.0,
"HR": 6.0,
"BF": 198.0,
"Pitches": 837.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.3,
"H": 4.0,
"BB": 2.3,
"SO": 7.5,
"HR": 0.6,
"BF": 19.8,
"Pitches": 83.7
},
"rates": {
"ERA": 4.3358,
"WHIP": 1.3796,
"ER_per_IP": 0.48175,
"H_per_IP": 0.87591,
"BB_per_IP": 0.50365,
"SO_per_IP": 1.64234,
"HR_per_IP": 0.13139
}
},
"season": {
"games": 34,
"totals": {
"IP": 190.1,
"ER": 79.0,
"R": 83.0,
"H": 149.0,
"BB": 64.0,
"SO": 260.0,
"HR": 28.0,
"BF": 771.0,
"Pitches": 3107.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3235,
"R": 2.4412,
"H": 4.3824,
"BB": 1.8824,
"SO": 7.6471,
"HR": 0.8235,
"BF": 22.6765,
"Pitches": 91.3824
},
"rates": {
"ERA": 3.7356,
"WHIP": 1.1191,
"ER_per_IP": 0.41506,
"H_per_IP": 0.78284,
"BB_per_IP": 0.33625,
"SO_per_IP": 1.36602,
"HR_per_IP": 0.14711
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.074,
"predicted_H": 4.042,
"predicted_BB": 2.223,
"predicted_SO": 6.941,
"predicted_HR": 0.494,
"predicted_ERA": 3.8922,
"predicted_WHIP": 1.3063
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4042,
"form_weight": 0.5958,
"form_reliability": 0.8718,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.074,
"final": 2.8524,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.042,
"final": 6.0458,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.223,
"final": 2.1329,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.941,
"final": 6.9648,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.494,
"final": 0.6985,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8922,
"final": 3.8922,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3063,
"final": 1.3063,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.2,
"ER": 22,
"H": 40,
"BB": 23,
"SO": 75,
"HR": 6,
"ERA": 4.335766423357664,
"WHIP": 1.3795620437956202,
"K9": 14.781021897810218,
"HR9": 1.1824817518248174,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-08T00:00:00"
},
"recent_form_boost": 0.9809379739609277,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.7685,
"BB": 0.453,
"SO": 1.5028,
"HR": 0.0826
},
"source": "recent_role_blend",
"tto_penalty": 1.0027,
"role_avg_IP": 5.737,
"recent_avg_IP": 5.267
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 9.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0003,
"run_prevention": 1.0014,
"strikeout": 0.9948
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.1069,
"walk_factor": 0.98,
"homer_factor": 1.1158,
"run_prevention_factor": 0.9812,
"quality_score": 0.2212
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 0.9688,
"BB": 1.1315,
"SO": 1.1717,
"HR": 1.0891
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0187,
"SO": 1.057,
"HR": 1.0
},
"earned_run_factor": 1.0059,
"before": {
"H": 3.73,
"BB": 2.198,
"SO": 7.245,
"HR": 0.403,
"ER": 1.922,
"ERA": 3.568
},
"after": {
"H": 3.73,
"BB": 2.2391,
"SO": 7.658,
"HR": 0.403,
"ER": 1.9334,
"ERA": 3.589
},
"by_hitter": [
{
"hitter": "Sam Antonacci",
"plate_appearances": 4.253,
"stand": "L",
"H_batter": 1.0437,
"H_platoon": 0.9903,
"H_bvp": 0.9589,
"BB_batter": 0.9148,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.6895,
"SO_platoon": 0.9885,
"SO_bvp": 1.0055,
"HR_batter": 0.6225,
"HR_platoon": 1.0106,
"HR_bvp": 0.9351,
"bvp_at_bats": 11.0,
"combined": {
"H": 0.9911,
"BB": 0.9383,
"SO": 0.6853,
"HR": 0.5883
}
},
{
"hitter": "Kyle Teel",
"plate_appearances": 4.09,
"stand": "L",
"H_batter": 0.9587,
"H_platoon": 0.9903,
"H_bvp": 0.9429,
"BB_batter": 1.1727,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.4979,
"SO_platoon": 0.9885,
"SO_bvp": 1.0455,
"HR_batter": 0.9905,
"HR_platoon": 1.0106,
"HR_bvp": 0.9429,
"bvp_at_bats": 9.0,
"combined": {
"H": 0.8952,
"BB": 1.2028,
"SO": 1.548,
"HR": 0.9438
}
},
{
"hitter": "Miguel Vargas",
"plate_appearances": 4.044,
"stand": "R",
"H_batter": 0.9704,
"H_platoon": 0.9929,
"H_bvp": 1.0601,
"BB_batter": 1.6124,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 0.8183,
"SO_platoon": 1.0163,
"SO_bvp": 1.0022,
"HR_batter": 1.3903,
"HR_platoon": 0.9986,
"HR_bvp": 1.037,
"bvp_at_bats": 14.0,
"combined": {
"H": 1.0214,
"BB": 1.5342,
"SO": 0.8335,
"HR": 1.4397
}
},
{
"hitter": "Munetaka Murakami",
"plate_appearances": 4.175,
"stand": "L",
"H_batter": 0.8903,
"H_platoon": 0.9903,
"H_bvp": 1.001,
"BB_batter": 1.7274,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.5577,
"SO_platoon": 0.9885,
"SO_bvp": 1.0243,
"HR_batter": 1.718,
"HR_platoon": 1.0106,
"HR_bvp": 1.0939,
"bvp_at_bats": 5.0,
"combined": {
"H": 0.8825,
"BB": 1.7718,
"SO": 1.5772,
"HR": 1.8992
}
},
{
"hitter": "Andrew Benintendi",
"plate_appearances": 3.483,
"stand": "L",
"H_batter": 0.9924,
"H_platoon": 0.9903,
"H_bvp": 1.0404,
"BB_batter": 0.9938,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.086,
"SO_platoon": 0.9885,
"SO_bvp": 0.9663,
"HR_batter": 1.0231,
"HR_platoon": 1.0106,
"HR_bvp": 0.925,
"bvp_at_bats": 13.0,
"combined": {
"H": 1.0225,
"BB": 1.0193,
"SO": 1.0373,
"HR": 0.9564
}
},
{
"hitter": "Tristan Peters",
"plate_appearances": 3.852,
"stand": "L",
"H_batter": 1.0464,
"H_platoon": 0.9903,
"H_bvp": 0.9728,
"BB_batter": 0.8747,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.8765,
"SO_platoon": 0.9885,
"SO_bvp": 1.0073,
"HR_batter": 0.8547,
"HR_platoon": 1.0106,
"HR_bvp": 0.9471,
"bvp_at_bats": 7.0,
"combined": {
"H": 1.0081,
"BB": 0.8972,
"SO": 0.8727,
"HR": 0.8181
}
},
{
"hitter": "Chase Meidroth",
"plate_appearances": 3.916,
"stand": "R",
"H_batter": 1.0728,
"H_platoon": 0.9929,
"H_bvp": 1.0033,
"BB_batter": 1.0659,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 0.9916,
"SO_platoon": 1.0163,
"SO_bvp": 0.9789,
"HR_batter": 0.8872,
"HR_platoon": 0.9986,
"HR_bvp": 0.9515,
"bvp_at_bats": 8.0,
"combined": {
"H": 1.0687,
"BB": 1.0142,
"SO": 0.9865,
"HR": 0.843
}
},
{
"hitter": "Colson Montgomery",
"plate_appearances": 3.609,
"stand": "L",
"H_batter": 0.8986,
"H_platoon": 0.9903,
"H_bvp": 0.9429,
"BB_batter": 0.978,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.5569,
"SO_platoon": 0.9885,
"SO_bvp": 1.0746,
"HR_batter": 1.4234,
"HR_platoon": 1.0106,
"HR_bvp": 0.9429,
"bvp_at_bats": 9.0,
"combined": {
"H": 0.8391,
"BB": 1.0031,
"SO": 1.6538,
"HR": 1.3564
}
},
{
"hitter": "Brenton Doyle",
"plate_appearances": 3.677,
"stand": "R",
"H_batter": 1.0012,
"H_platoon": 0.9929,
"H_bvp": 1.0,
"BB_batter": 0.7441,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 1.3698,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 0.9355,
"HR_platoon": 0.9986,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9941,
"BB": 0.708,
"SO": 1.3921,
"HR": 0.9342
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"applied": false,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 20.472
},
"player_attribution": null
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 9,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.9334,
"market_implied": 1.3186,
"market_multiplier": 0.682,
"weight": 0.5183,
"effective_multiplier": 0.8201,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.3797,
"model_p_over": 0.5757,
"implied_multiplier": 0.682
}
]
},
"H": {
"model": 3.73,
"market_implied": 3.259,
"market_multiplier": 0.8737,
"weight": 0.5533,
"effective_multiplier": 0.928,
"lines": [
3.5
],
"books": 3,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 3.5,
"books": 3,
"market_p_over": 0.4106,
"model_p_over": 0.5121,
"implied_multiplier": 0.8737
}
]
},
"OUTS": {
"model": 14.544,
"market_implied": 14.3779,
"market_multiplier": 0.9886,
"weight": 0.5467,
"effective_multiplier": 0.9937,
"lines": [
13.5,
14.5
],
"books": 5,
"props": [
{
"market": "pitcher_outs",
"point": 13.5,
"books": 2,
"market_p_over": 0.503,
"model_p_over": 0.5861,
"implied_multiplier": 0.944
},
{
"market": "pitcher_outs",
"point": 14.5,
"books": 3,
"market_p_over": 0.508,
"model_p_over": 0.4797,
"implied_multiplier": 1.0194
}
]
},
"SO": {
"model": 7.658,
"market_implied": 6.9035,
"market_multiplier": 0.9015,
"weight": 0.5833,
"effective_multiplier": 0.9413,
"lines": [
6.5
],
"books": 6,
"props": [
{
"market": "pitcher_strikeouts",
"point": 6.5,
"books": 6,
"market_p_over": 0.5358,
"model_p_over": 0.6431,
"implied_multiplier": 0.9015
}
]
},
"BB": {
"model": 2.2391,
"market_implied": 2.0753,
"market_multiplier": 0.9268,
"weight": 0.5798,
"effective_multiplier": 0.9569,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.614,
"model_p_over": 0.6549,
"implied_multiplier": 0.9268
}
]
}
},
"expected_before": {
"SO": 7.658,
"H": 3.73,
"BB": 2.2391,
"ER": 1.9334,
"IP": 4.848,
"ERA": 3.589
},
"expected_after": {
"SO": 7.2084,
"H": 3.4615,
"BB": 2.1426,
"ER": 1.5855,
"IP": 4.8176,
"ERA": 2.962
},
"line": {
"IP": 5.1,
"H": 9,
"ER": 4,
"BB": 2,
"SO": 7,
"HR": 1
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 5.1,
"H": 8,
"R": 3,
"ER": 3,
"BB": 2,
"SO": 7,
"HR": 1
},
"stats": {
"IP": 4.2,
"H": 2,
"R": 1,
"ER": 1,
"BB": 4,
"SO": 10,
"HR": 0,
"BF": 20,
"Pitches": 94
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "668909",
"player_name": "Gavin Williams",
"position": "Starter",
"team": "CLE",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"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": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 1.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 2.0,
"delta": -7.0,
"percent_delta": -0.7778,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 4.2,
"delta": -0.9,
"percent_delta": -0.1765,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 10.0,
"delta": 3.0,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 10.0,
"delta": 3.0,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 9.0,
"after": 2.0,
"delta": -7.0,
"percent_delta": -0.7778,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 10.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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 1.0,
"delta": -3.0,
"percent_delta": -0.75,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 2.0,
"delta": -7.0,
"percent_delta": -0.7778,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 10.0,
"delta": 3.0,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 10.0,
"delta": 3.0,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 9.0,
"after": 2.0,
"delta": -7.0,
"percent_delta": -0.7778,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.0062,
"offense_edge": -0.0675,
"opponent_offense_edge": 0.0673,
"defense_strength": 0.0901,
"opponent_defense_weakness": -0.0098,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0003,
"run_prevention": 1.0014,
"strikeout": 0.9948
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668909",
"profile": {
"available": true,
"pitcher_id": "668909",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 700.0,
"k_percent": 33.2,
"bb_percent": 8.2,
"woba": 0.294,
"xwoba": 0.302,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 11.4,
"hard_hit_percent": 46.6,
"avg_best_speed": 79.2974,
"avg_hyper_speed": 94.9953,
"whiff_percent": 32.8,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1041,
"command_and_miss": 1.1436,
"regression_edge": -0.2286,
"xwoba_edge": 0.2857,
"barrel_edge": -0.9333,
"hard_hit_edge": -1.2429,
"whiff_edge": 1.0857,
"bb_edge": 0.25,
"pitch_design_score": 0.0624
},
"quality_score": 0.2212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9812,
"strikeout_factor": 1.1069,
"walk_factor": 0.98,
"homer_factor": 1.1158,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "668909",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9812,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9812,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1158,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.1069,
"adjusted": 9
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 4.2,
"H": 2,
"R": 1,
"ER": 1,
"BB": 4,
"SO": 10,
"HR": 0,
"BF": 20,
"Pitches": 94,
"source": "play_by_play_realizer_v1",
"predicted_R": 1,
"predicted_ER": 1
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20261010_CHW@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261011 | 20261011_LAD@MIL | away | Tarik Skubal | Tarik Skubal | True | 6.1 | 5.0 | -4 | 4 | 2 | -2 | 6/5 | 3/2 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.6781376518218627,
"WHIP": 0.9534412955465588,
"IP": 164.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 6.099,
"recent_avg_IP": 6.467,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9352,
"strikeout_factor": 1.0823,
"walk_factor": 0.904,
"homer_factor": 0.934,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 4.4,
"woba": 0.264,
"xwoba": 0.266,
"barrel_percent": 6.7,
"hard_hit_percent": 34.8,
"whiff_percent": 31.7
},
"espn_rank": {
"rank": 64,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "669373",
"report_date": "20261011",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.1,
"ER": 7.0,
"R": 7.0,
"H": 20.0,
"BB": 7.0,
"SO": 34.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 439.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.4,
"H": 4.0,
"BB": 1.4,
"SO": 6.8,
"HR": 0.6,
"BF": 24.2,
"Pitches": 87.8
},
"rates": {
"ERA": 1.9485,
"WHIP": 0.8351,
"ER_per_IP": 0.21649,
"H_per_IP": 0.61856,
"BB_per_IP": 0.21649,
"SO_per_IP": 1.05155,
"HR_per_IP": 0.09278
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 17.0,
"R": 18.0,
"H": 50.0,
"BB": 13.0,
"SO": 71.0,
"HR": 4.0,
"BF": 244.0,
"Pitches": 934.0
},
"per_game": {
"IP": 6.1,
"ER": 1.7,
"R": 1.8,
"H": 5.0,
"BB": 1.3,
"SO": 7.1,
"HR": 0.4,
"BF": 24.4,
"Pitches": 93.4
},
"rates": {
"ERA": 2.4677,
"WHIP": 1.0161,
"ER_per_IP": 0.27419,
"H_per_IP": 0.80645,
"BB_per_IP": 0.20968,
"SO_per_IP": 1.14516,
"HR_per_IP": 0.06452
}
},
"season": {
"games": 27,
"totals": {
"IP": 164.2,
"ER": 49.0,
"R": 53.0,
"H": 128.0,
"BB": 29.0,
"SO": 193.0,
"HR": 15.0,
"BF": 642.0,
"Pitches": 2450.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8148,
"R": 1.963,
"H": 4.7407,
"BB": 1.0741,
"SO": 7.1481,
"HR": 0.5556,
"BF": 23.7778,
"Pitches": 90.7407
},
"rates": {
"ERA": 2.6781,
"WHIP": 0.9534,
"ER_per_IP": 0.29757,
"H_per_IP": 0.77733,
"BB_per_IP": 0.17611,
"SO_per_IP": 1.17206,
"HR_per_IP": 0.09109
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.844,
"predicted_H": 4.759,
"predicted_BB": 1.465,
"predicted_SO": 6.787,
"predicted_HR": 0.582,
"predicted_ERA": 2.6434,
"predicted_WHIP": 0.9916
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.844,
"final": 2.7409,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.759,
"final": 5.2752,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.465,
"final": 2.1036,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.787,
"final": 6.4596,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.582,
"final": 0.3399,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6434,
"final": 2.6434,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9916,
"final": 0.9916,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 17,
"H": 50,
"BB": 13,
"SO": 71,
"HR": 4,
"ERA": 2.467741935483871,
"WHIP": 1.0161290322580645,
"K9": 10.306451612903226,
"HR9": 0.5806451612903226,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-03T00:00:00"
},
"recent_form_boost": 0.7622935032313576,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.6789,
"BB": 0.2011,
"SO": 1.0973,
"HR": 0.0921
},
"source": "recent_role_blend",
"tto_penalty": 1.007,
"role_avg_IP": 6.099,
"recent_avg_IP": 6.467
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 0.9995,
"run_prevention": 1.0033,
"strikeout": 0.9877
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.0823,
"walk_factor": 0.904,
"homer_factor": 0.934,
"run_prevention_factor": 0.9352,
"quality_score": 0.7622
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0618,
"BB": 1.1484,
"SO": 1.0256,
"HR": 0.8839
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.021,
"SO": 1.0089,
"HR": 1.0
},
"earned_run_factor": 1.0038,
"before": {
"H": 3.924,
"BB": 1.162,
"SO": 6.244,
"HR": 0.537,
"ER": 1.439,
"ERA": 2.249
},
"after": {
"H": 3.924,
"BB": 1.1864,
"SO": 6.2996,
"HR": 0.537,
"ER": 1.4445,
"ERA": 2.258
},
"by_hitter": [
{
"hitter": "Jackson Chourio",
"plate_appearances": 4.56,
"stand": "R",
"H_batter": 1.1067,
"H_platoon": 1.0096,
"H_bvp": 1.0201,
"BB_batter": 0.9518,
"BB_platoon": 1.0662,
"BB_bvp": 1.0,
"SO_batter": 1.0307,
"SO_platoon": 0.9778,
"SO_bvp": 1.0239,
"HR_batter": 1.3165,
"HR_platoon": 1.002,
"HR_bvp": 0.9471,
"bvp_at_bats": 9.0,
"combined": {
"H": 1.1398,
"BB": 1.0148,
"SO": 1.0319,
"HR": 1.2494
}
},
{
"hitter": "Brice Turang",
"plate_appearances": 4.286,
"stand": "L",
"H_batter": 1.04,
"H_platoon": 1.036,
"H_bvp": 1.0049,
"BB_batter": 1.4161,
"BB_platoon": 0.9046,
"BB_bvp": 1.0,
"SO_batter": 1.1035,
"SO_platoon": 1.0428,
"SO_bvp": 1.0501,
"HR_batter": 1.0114,
"HR_platoon": 0.9607,
"HR_bvp": 0.9515,
"bvp_at_bats": 8.0,
"combined": {
"H": 1.0827,
"BB": 1.281,
"SO": 1.2084,
"HR": 0.9245
}
},
{
"hitter": "William Contreras",
"plate_appearances": 4.296,
"stand": "R",
"H_batter": 1.0546,
"H_platoon": 1.0096,
"H_bvp": 1.0237,
"BB_batter": 1.0783,
"BB_platoon": 1.0662,
"BB_bvp": 1.0,
"SO_batter": 0.6735,
"SO_platoon": 0.9778,
"SO_bvp": 0.9471,
"HR_batter": 1.0043,
"HR_platoon": 1.002,
"HR_bvp": 0.9471,
"bvp_at_bats": 8.0,
"combined": {
"H": 1.09,
"BB": 1.1497,
"SO": 0.6237,
"HR": 0.9531
}
},
{
"hitter": "Jake Bauers",
"plate_appearances": 4.035,
"stand": "L",
"H_batter": 1.0005,
"H_platoon": 1.036,
"H_bvp": 1.0,
"BB_batter": 1.6925,
"BB_platoon": 0.9046,
"BB_bvp": 1.0,
"SO_batter": 1.2157,
"SO_platoon": 1.0428,
"SO_bvp": 1.0,
"HR_batter": 1.2852,
"HR_platoon": 0.9607,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0365,
"BB": 1.531,
"SO": 1.2677,
"HR": 1.2347
}
},
{
"hitter": "Andrew Vaughn",
"plate_appearances": 3.762,
"stand": "R",
"H_batter": 1.0894,
"H_platoon": 1.0096,
"H_bvp": 0.9917,
"BB_batter": 1.0906,
"BB_platoon": 1.0662,
"BB_bvp": 1.0,
"SO_batter": 0.7653,
"SO_platoon": 0.9778,
"SO_bvp": 1.0996,
"HR_batter": 0.7768,
"HR_platoon": 1.002,
"HR_bvp": 0.91,
"bvp_at_bats": 22.0,
"combined": {
"H": 1.0907,
"BB": 1.1628,
"SO": 0.8228,
"HR": 0.7083
}
},
{
"hitter": "Garrett Mitchell",
"plate_appearances": 3.963,
"stand": "L",
"H_batter": 1.0195,
"H_platoon": 1.036,
"H_bvp": 1.0,
"BB_batter": 1.1776,
"BB_platoon": 0.9046,
"BB_bvp": 1.0,
"SO_batter": 1.3883,
"SO_platoon": 1.0428,
"SO_bvp": 1.0,
"HR_batter": 0.745,
"HR_platoon": 0.9607,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0562,
"BB": 1.0653,
"SO": 1.4477,
"HR": 0.7157
}
},
{
"hitter": "Cooper Pratt",
"plate_appearances": 3.804,
"stand": "R",
"H_batter": 1.0382,
"H_platoon": 1.0096,
"H_bvp": 1.0,
"BB_batter": 1.015,
"BB_platoon": 1.0662,
"BB_bvp": 1.0,
"SO_batter": 0.8309,
"SO_platoon": 0.9778,
"SO_bvp": 1.0,
"HR_batter": 0.6741,
"HR_platoon": 1.002,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0482,
"BB": 1.0822,
"SO": 0.8125,
"HR": 0.6754
}
},
{
"hitter": "Luis Lara",
"plate_appearances": 3.916,
"stand": "R",
"H_batter": 0.9995,
"H_platoon": 1.0096,
"H_bvp": 1.0,
"BB_batter": 0.9535,
"BB_platoon": 1.0662,
"BB_bvp": 1.0,
"SO_batter": 0.9825,
"SO_platoon": 0.9778,
"SO_bvp": 1.0,
"HR_batter": 0.6188,
"HR_platoon": 1.002,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0091,
"BB": 1.0166,
"SO": 0.9607,
"HR": 0.62
}
},
{
"hitter": "Joey Ortiz",
"plate_appearances": 3.733,
"stand": "R",
"H_batter": 1.0373,
"H_platoon": 1.0096,
"H_bvp": 0.9389,
"BB_batter": 0.9605,
"BB_platoon": 1.0662,
"BB_bvp": 1.0,
"SO_batter": 0.9341,
"SO_platoon": 0.9778,
"SO_bvp": 1.15,
"HR_batter": 0.8252,
"HR_platoon": 1.002,
"HR_bvp": 0.9389,
"bvp_at_bats": 11.0,
"combined": {
"H": 0.9833,
"BB": 1.0241,
"SO": 1.0504,
"HR": 0.7763
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"applied": false,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 22.357
},
"player_attribution": null
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 1.4445,
"market_implied": 1.6689,
"market_multiplier": 1.1553,
"weight": 0.5415,
"effective_multiplier": 1.0813,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.497,
"model_p_over": 0.4234,
"implied_multiplier": 1.1553
}
]
},
"H": {
"model": 3.924,
"market_implied": 4.5066,
"market_multiplier": 1.1485,
"weight": 0.5649,
"effective_multiplier": 1.0813,
"lines": [
4.5
],
"books": 4,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 4.5,
"books": 4,
"market_p_over": 0.4691,
"model_p_over": 0.3563,
"implied_multiplier": 1.1485
}
]
},
"OUTS": {
"model": 17.271,
"market_implied": 19.6205,
"market_multiplier": 1.136,
"weight": 0.5451,
"effective_multiplier": 1.072,
"lines": [
17.5
],
"books": 7,
"props": [
{
"market": "pitcher_outs",
"point": 17.5,
"books": 7,
"market_p_over": 0.5978,
"model_p_over": 0.4201,
"implied_multiplier": 1.136
}
]
},
"SO": {
"model": 6.2996,
"market_implied": 7.2407,
"market_multiplier": 1.1494,
"weight": 0.5902,
"effective_multiplier": 1.0856,
"lines": [
7.5
],
"books": 6,
"props": [
{
"market": "pitcher_strikeouts",
"point": 7.5,
"books": 6,
"market_p_over": 0.4371,
"model_p_over": 0.2982,
"implied_multiplier": 1.1494
}
]
},
"BB": {
"model": 1.1864,
"market_implied": 1.476,
"market_multiplier": 1.2441,
"weight": 0.5868,
"effective_multiplier": 1.1367,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.4341,
"model_p_over": 0.3325,
"implied_multiplier": 1.2441
}
]
}
},
"expected_before": {
"SO": 6.2996,
"H": 3.924,
"BB": 1.1864,
"ER": 1.4445,
"IP": 5.757,
"ERA": 2.258
},
"expected_after": {
"SO": 6.8391,
"H": 4.2431,
"BB": 1.3486,
"ER": 1.562,
"IP": 6.1715,
"ERA": 2.278
},
"line": {
"IP": 6.1,
"H": 6,
"ER": 4,
"BB": 3,
"SO": 6,
"HR": 0
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.1,
"H": 6,
"R": 3,
"ER": 3,
"BB": 3,
"SO": 7,
"HR": 0
},
"stats": {
"IP": 6.1,
"H": 6,
"R": 4,
"ER": 4,
"BB": 3,
"SO": 6,
"HR": 0,
"BF": 30,
"Pitches": 121
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "669373",
"player_name": "Tarik Skubal",
"position": "Starter",
"team": "LAD",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": -0.0256,
"offense_edge": 0.102,
"opponent_offense_edge": 0.1447,
"defense_strength": 0.2114,
"opponent_defense_weakness": -0.1761,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9995,
"run_prevention": 1.0033,
"strikeout": 0.9877
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669373",
"profile": {
"available": true,
"pitcher_id": "669373",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 569.0,
"k_percent": 30.0,
"bb_percent": 4.4,
"woba": 0.264,
"xwoba": 0.266,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 34.8,
"avg_best_speed": 75.3556,
"avg_hyper_speed": 93.4848,
"whiff_percent": 31.7,
"swing_percent": 53.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.851,
"command_and_miss": 1.0729,
"regression_edge": -0.0571,
"xwoba_edge": 1.3143,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.4429,
"whiff_edge": 0.9286,
"bb_edge": 1.2,
"pitch_design_score": 0.155
},
"quality_score": 0.7622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9352,
"strikeout_factor": 1.0823,
"walk_factor": 0.904,
"homer_factor": 0.934,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669373",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9352,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9352,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.904,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.934,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0823,
"adjusted": 8
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 6.1,
"H": 6,
"R": 4,
"ER": 4,
"BB": 3,
"SO": 6,
"HR": 0,
"BF": 30,
"Pitches": 121,
"source": "play_by_play_realizer_v1",
"predicted_R": 4,
"predicted_ER": 4
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20261011_LAD@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20261011 | 20261011_LAD@MIL | home | Jacob Misiorowski | Jacob Misiorowski | True | 5.1 | 4.1 | -3 | 1 | 1 | 0 | 3/5 | 2/3 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.8638059701492538,
"WHIP": 0.8115671641791046,
"IP": 178.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.763,
"recent_avg_IP": 4.733,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.3589,
"sample_weight": 1.0,
"run_prevention_factor": 0.8845,
"strikeout_factor": 1.1594,
"walk_factor": 0.948,
"homer_factor": 0.836,
"regression_flag": "neutral",
"k_percent": 37.9,
"bb_percent": 6.6,
"woba": 0.216,
"xwoba": 0.226,
"barrel_percent": 3.6,
"hard_hit_percent": 33.3,
"whiff_percent": 37.3
},
"espn_rank": {
"rank": 108,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 178.2,
"season_ERA": 1.864,
"season_WHIP": 0.812,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694819",
"report_date": "20261011",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 3.0,
"R": 3.0,
"H": 16.0,
"BB": 6.0,
"SO": 31.0,
"HR": 0.0,
"BF": 91.0,
"Pitches": 375.0
},
"per_game": {
"IP": 4.2,
"ER": 0.6,
"R": 0.6,
"H": 3.2,
"BB": 1.2,
"SO": 6.2,
"HR": 0.0,
"BF": 18.2,
"Pitches": 75.0
},
"rates": {
"ERA": 1.1408,
"WHIP": 0.9296,
"ER_per_IP": 0.12676,
"H_per_IP": 0.67606,
"BB_per_IP": 0.25352,
"SO_per_IP": 1.30986,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 14.0,
"R": 14.0,
"H": 36.0,
"BB": 16.0,
"SO": 63.0,
"HR": 3.0,
"BF": 203.0,
"Pitches": 844.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.6,
"BB": 1.6,
"SO": 6.3,
"HR": 0.3,
"BF": 20.3,
"Pitches": 84.4
},
"rates": {
"ERA": 2.4387,
"WHIP": 1.0065,
"ER_per_IP": 0.27097,
"H_per_IP": 0.69677,
"BB_per_IP": 0.30968,
"SO_per_IP": 1.21935,
"HR_per_IP": 0.05806
}
},
"season": {
"games": 31,
"totals": {
"IP": 178.2,
"ER": 37.0,
"R": 45.0,
"H": 100.0,
"BB": 45.0,
"SO": 258.0,
"HR": 14.0,
"BF": 683.0,
"Pitches": 2735.0
},
"per_game": {
"IP": 5.2,
"ER": 1.1935,
"R": 1.4516,
"H": 3.2258,
"BB": 1.4516,
"SO": 8.3226,
"HR": 0.4516,
"BF": 22.0323,
"Pitches": 88.2258
},
"rates": {
"ERA": 1.8638,
"WHIP": 0.8116,
"ER_per_IP": 0.20709,
"H_per_IP": 0.5597,
"BB_per_IP": 0.25187,
"SO_per_IP": 1.44403,
"HR_per_IP": 0.07836
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.243,
"predicted_H": 3.685,
"predicted_BB": 1.505,
"predicted_SO": 6.549,
"predicted_HR": 0.269,
"predicted_ERA": 2.1407,
"predicted_WHIP": 0.9932
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.243,
"final": 1.5524,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.685,
"final": 2.9964,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.505,
"final": 0.8899,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.549,
"final": 5.5073,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.269,
"final": 0.5677,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.1407,
"final": 2.1407,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9932,
"final": 0.9932,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 14,
"H": 36,
"BB": 16,
"SO": 63,
"HR": 3,
"ERA": 2.438709677419355,
"WHIP": 1.006451612903226,
"K9": 10.974193548387097,
"HR9": 0.5225806451612903,
"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-10-03T00:00:00"
},
"recent_form_boost": 0.7587854387152284,
"stat_evolution": [
{
"step": "pitcher_rate_projection",
"applied": true,
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"rates_per_inning": {
"H": 0.6258,
"BB": 0.2528,
"SO": 1.3678,
"HR": 0.0339
},
"source": "recent_role_blend",
"tto_penalty": 1.0027,
"role_avg_IP": 5.763,
"recent_avg_IP": 4.733
},
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "team_form_adjustment",
"applied": true,
"description": "Club form: innings, run prevention and strikeout factors",
"factors": {
"ip": 1.0022,
"run_prevention": 0.9974,
"strikeout": 0.9926
}
},
{
"step": "savant_pitcher_quality",
"applied": true,
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"factors": {
"strikeout_factor": 1.1594,
"walk_factor": 0.948,
"homer_factor": 0.836,
"run_prevention_factor": 0.8845,
"quality_score": 1.3589
}
},
{
"step": "opposing_lineup_context",
"applied": true,
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"lineup_multipliers": {
"H": 1.0053,
"BB": 1.1143,
"SO": 0.9552,
"HR": 1.1836
},
"weights": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
},
"applied_multipliers": {
"H": 1.0,
"BB": 1.0164,
"SO": 0.9841,
"HR": 1.0
},
"earned_run_factor": 1.0043,
"before": {
"H": 3.028,
"BB": 1.222,
"SO": 6.586,
"HR": 0.165,
"ER": 0.783,
"ERA": 1.45
},
"after": {
"H": 3.028,
"BB": 1.242,
"SO": 6.4813,
"HR": 0.165,
"ER": 0.7864,
"ERA": 1.456
},
"by_hitter": [
{
"hitter": "Mookie Betts",
"plate_appearances": 4.337,
"stand": "R",
"H_batter": 1.0341,
"H_platoon": 0.9929,
"H_bvp": 0.9784,
"BB_batter": 1.002,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 0.5293,
"SO_platoon": 1.0163,
"SO_bvp": 1.1056,
"HR_batter": 1.2706,
"HR_platoon": 0.9986,
"HR_bvp": 0.9515,
"bvp_at_bats": 8.0,
"combined": {
"H": 1.0046,
"BB": 0.9534,
"SO": 0.5947,
"HR": 1.2073
}
},
{
"hitter": "Freddie Freeman",
"plate_appearances": 4.397,
"stand": "L",
"H_batter": 1.0881,
"H_platoon": 0.9903,
"H_bvp": 0.9515,
"BB_batter": 1.1421,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.7943,
"SO_platoon": 0.9885,
"SO_bvp": 1.0884,
"HR_batter": 0.9149,
"HR_platoon": 1.0106,
"HR_bvp": 0.9515,
"bvp_at_bats": 7.0,
"combined": {
"H": 1.0253,
"BB": 1.1715,
"SO": 0.8546,
"HR": 0.8798
}
},
{
"hitter": "Will Smith",
"plate_appearances": 4.184,
"stand": "R",
"H_batter": 0.9941,
"H_platoon": 0.9929,
"H_bvp": 1.0,
"BB_batter": 1.191,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 0.8372,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.0714,
"HR_platoon": 0.9986,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.987,
"BB": 1.1332,
"SO": 0.8508,
"HR": 1.0699
}
},
{
"hitter": "Shohei Ohtani",
"plate_appearances": 4.203,
"stand": "L",
"H_batter": 1.0278,
"H_platoon": 0.9903,
"H_bvp": 1.0055,
"BB_batter": 1.4376,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.1021,
"SO_platoon": 0.9885,
"SO_bvp": 1.0255,
"HR_batter": 1.4054,
"HR_platoon": 1.0106,
"HR_bvp": 1.0929,
"bvp_at_bats": 7.0,
"combined": {
"H": 1.0234,
"BB": 1.4745,
"SO": 1.1172,
"HR": 1.5522
}
},
{
"hitter": "Teoscar Hern\u00e1ndez",
"plate_appearances": 4.125,
"stand": "R",
"H_batter": 1.0442,
"H_platoon": 0.9929,
"H_bvp": 1.0,
"BB_batter": 0.951,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 1.219,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.0732,
"HR_platoon": 0.9986,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 1.0368,
"BB": 0.9049,
"SO": 1.2389,
"HR": 1.0717
}
},
{
"hitter": "Max Muncy",
"plate_appearances": 4.019,
"stand": "L",
"H_batter": 0.9998,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 1.2424,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 1.1111,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 1.5838,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9901,
"BB": 1.2743,
"SO": 1.0983,
"HR": 1.6006
}
},
{
"hitter": "Andy Pages",
"plate_appearances": 3.832,
"stand": "R",
"H_batter": 1.0612,
"H_platoon": 0.9929,
"H_bvp": 0.9777,
"BB_batter": 0.987,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 0.9002,
"SO_platoon": 1.0163,
"SO_bvp": 0.9817,
"HR_batter": 1.2025,
"HR_platoon": 0.9986,
"HR_bvp": 0.9515,
"bvp_at_bats": 8.0,
"combined": {
"H": 1.0302,
"BB": 0.9391,
"SO": 0.8981,
"HR": 1.1426
}
},
{
"hitter": "Kyle Tucker",
"plate_appearances": 3.86,
"stand": "L",
"H_batter": 0.9688,
"H_platoon": 0.9903,
"H_bvp": 1.0,
"BB_batter": 1.2876,
"BB_platoon": 1.0257,
"BB_bvp": 1.0,
"SO_batter": 0.7771,
"SO_platoon": 0.9885,
"SO_bvp": 1.0,
"HR_batter": 0.952,
"HR_platoon": 1.0106,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9594,
"BB": 1.3207,
"SO": 0.7682,
"HR": 0.9621
}
},
{
"hitter": "Enrique Hern\u00e1ndez",
"plate_appearances": 3.482,
"stand": "R",
"H_batter": 0.9914,
"H_platoon": 0.9929,
"H_bvp": 1.0,
"BB_batter": 0.8538,
"BB_platoon": 0.9515,
"BB_bvp": 1.0,
"SO_batter": 1.2099,
"SO_platoon": 1.0163,
"SO_bvp": 1.0,
"HR_batter": 1.1728,
"HR_platoon": 0.9986,
"HR_bvp": 1.0,
"bvp_at_bats": null,
"combined": {
"H": 0.9844,
"BB": 0.8124,
"SO": 1.2296,
"HR": 1.1712
}
}
]
},
{
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"applied": false,
"kpi_staff_exposure": {
"usage": "starter",
"batters_faced": 18.833
},
"player_attribution": null
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "market_blend",
"applied": true,
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats_blended": {
"ER": {
"model": 0.7864,
"market_implied": 1.4017,
"market_multiplier": 1.7824,
"weight": 0.5415,
"effective_multiplier": 1.3675,
"lines": [
1.5
],
"books": 3,
"props": [
{
"market": "pitcher_earned_runs",
"point": 1.5,
"books": 3,
"market_p_over": 0.4088,
"model_p_over": 0.1863,
"implied_multiplier": 1.7824
}
]
},
"H": {
"model": 3.028,
"market_implied": 3.5624,
"market_multiplier": 1.1765,
"weight": 0.5649,
"effective_multiplier": 1.0962,
"lines": [
3.5
],
"books": 3,
"props": [
{
"market": "pitcher_hits_allowed",
"point": 3.5,
"books": 3,
"market_p_over": 0.4768,
"model_p_over": 0.359,
"implied_multiplier": 1.1765
}
]
},
"OUTS": {
"model": 14.583,
"market_implied": 17.2396,
"market_multiplier": 1.1822,
"weight": 0.5451,
"effective_multiplier": 1.0955,
"lines": [
16.5
],
"books": 7,
"props": [
{
"market": "pitcher_outs",
"point": 16.5,
"books": 7,
"market_p_over": 0.521,
"model_p_over": 0.2861,
"implied_multiplier": 1.1822
}
]
},
"SO": {
"model": 6.4813,
"market_implied": 7.4312,
"market_multiplier": 1.1466,
"weight": 0.5902,
"effective_multiplier": 1.0841,
"lines": [
7.5
],
"books": 5,
"props": [
{
"market": "pitcher_strikeouts",
"point": 7.5,
"books": 5,
"market_p_over": 0.4653,
"model_p_over": 0.3245,
"implied_multiplier": 1.1466
}
]
},
"BB": {
"model": 1.242,
"market_implied": 1.8378,
"market_multiplier": 1.4797,
"weight": 0.5868,
"effective_multiplier": 1.2585,
"lines": [
1.5
],
"books": 2,
"props": [
{
"market": "pitcher_walks",
"point": 1.5,
"books": 2,
"market_p_over": 0.5483,
"model_p_over": 0.3525,
"implied_multiplier": 1.4797
}
]
}
},
"expected_before": {
"SO": 6.4813,
"H": 3.028,
"BB": 1.242,
"ER": 0.7864,
"IP": 4.861,
"ERA": 1.456
},
"expected_after": {
"SO": 7.0262,
"H": 3.3192,
"BB": 1.5631,
"ER": 1.0754,
"IP": 5.3253,
"ERA": 1.817
},
"line": {
"IP": 6.0,
"H": 2,
"ER": 2,
"BB": 0,
"SO": 4,
"HR": 1
}
},
{
"step": "play_by_play_realization",
"applied": true,
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"before": {
"IP": 6.0,
"H": 2,
"R": 1,
"ER": 1,
"BB": 0,
"SO": 7,
"HR": 0
},
"stats": {
"IP": 5.1,
"H": 3,
"R": 1,
"ER": 1,
"BB": 2,
"SO": 6,
"HR": 0,
"BF": 21,
"Pitches": 80
}
}
],
"prediction_impact_trace": {
"trace_version": "1.1",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"position": "Starter",
"team": "MIL",
"steps": [
{
"index": 1,
"step": "pitcher_rate_projection",
"description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 2,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 3,
"step": "team_form_adjustment",
"description": "Club form: innings, run prevention and strikeout factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 4,
"step": "savant_pitcher_quality",
"description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 5,
"step": "opposing_lineup_context",
"description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
"stats": {},
"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": {
"H": 0.0,
"BB": 0.15,
"SO": 0.35,
"HR": 0.0
}
},
{
"index": 6,
"step": "kpi_run_environment",
"description": "KPI blend withheld: values_fresh; the staff line follows the published score, not a KPI rescale",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 7,
"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": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
}
},
{
"index": 8,
"step": "market_blend",
"description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
"stats": {},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
}
},
{
"index": 9,
"step": "play_by_play_realization",
"description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
}
},
{
"index": 10,
"step": "current_json_final",
"description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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
}
}
],
"total_change": {
"from_step": "pitcher_rate_projection",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"edges": {
"quality_edge": 0.0256,
"offense_edge": 0.1447,
"opponent_offense_edge": 0.102,
"defense_strength": 0.1761,
"opponent_defense_weakness": -0.2114,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0022,
"run_prevention": 0.9974,
"strikeout": 0.9926
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 37.9,
"bb_percent": 6.6,
"woba": 0.216,
"xwoba": 0.226,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 33.3,
"avg_best_speed": 76.4985,
"avg_hyper_speed": 92.9527,
"whiff_percent": 37.3,
"swing_percent": 51.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6247,
"command_and_miss": 1.7507,
"regression_edge": -0.2857,
"xwoba_edge": 2.4571,
"barrel_edge": 0.8,
"hard_hit_edge": 0.6571,
"whiff_edge": 1.7286,
"bb_edge": 0.65,
"pitch_design_score": 0.28
},
"quality_score": 1.3589,
"sample_weight": 1.0,
"run_prevention_factor": 0.8845,
"strikeout_factor": 1.1594,
"walk_factor": 0.948,
"homer_factor": 0.836,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694819",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8845,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8845,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.836,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.1594,
"adjusted": 8
}
}
},
"club_form": "game.<side>_team.predicted_performance.team_form"
},
"simulation_box_score_stats": {
"IP": 5.1,
"H": 3,
"R": 1,
"ER": 1,
"BB": 2,
"SO": 6,
"HR": 0,
"BF": 21,
"Pitches": 80,
"source": "play_by_play_realizer_v1",
"predicted_R": 1,
"predicted_ER": 1
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20261011_LAD@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |