| 20260904 | 20260904_ARI@HOU | away | Merrill Kelly | Merrill Kelly | True | 5.0 | 6.0 | 3 | 3 | 3 | 0 | 5/7 | 4/0 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.082352941176471,
"WHIP": 1.4823529411764707,
"IP": 141.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.467,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -1.0761,
"sample_weight": 1.0,
"run_prevention_factor": 1.0915,
"strikeout_factor": 0.9429,
"walk_factor": 1.024,
"homer_factor": 1.1863,
"regression_flag": "negative_pitcher_regression",
"k_percent": 15.4,
"bb_percent": 10.4,
"woba": 0.356,
"xwoba": 0.392,
"barrel_percent": 12.1,
"hard_hit_percent": 43.0,
"whiff_percent": 21.7
},
"espn_rank": {
"rank": 546,
"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": "518876",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 16.0,
"R": 16.0,
"H": 22.0,
"BB": 18.0,
"SO": 19.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.2,
"H": 4.4,
"BB": 3.6,
"SO": 3.8,
"HR": 0.6,
"BF": 23.6,
"Pitches": 87.2
},
"rates": {
"ERA": 5.2683,
"WHIP": 1.4634,
"ER_per_IP": 0.58537,
"H_per_IP": 0.80488,
"BB_per_IP": 0.65854,
"SO_per_IP": 0.69512,
"HR_per_IP": 0.10976
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 25.0,
"R": 28.0,
"H": 46.0,
"BB": 29.0,
"SO": 42.0,
"HR": 7.0,
"BF": 229.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.8,
"H": 4.6,
"BB": 2.9,
"SO": 4.2,
"HR": 0.7,
"BF": 22.9,
"Pitches": 89.3
},
"rates": {
"ERA": 4.0909,
"WHIP": 1.3636,
"ER_per_IP": 0.45455,
"H_per_IP": 0.83636,
"BB_per_IP": 0.52727,
"SO_per_IP": 0.76364,
"HR_per_IP": 0.12727
}
},
"season": {
"games": 25,
"totals": {
"IP": 141.2,
"ER": 80.0,
"R": 83.0,
"H": 146.0,
"BB": 64.0,
"SO": 95.0,
"HR": 26.0,
"BF": 616.0,
"Pitches": 2278.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.32,
"H": 5.84,
"BB": 2.56,
"SO": 3.8,
"HR": 1.04,
"BF": 24.64,
"Pitches": 91.12
},
"rates": {
"ERA": 5.0824,
"WHIP": 1.4824,
"ER_per_IP": 0.56471,
"H_per_IP": 1.03059,
"BB_per_IP": 0.45176,
"SO_per_IP": 0.67059,
"HR_per_IP": 0.18353
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.88,
"predicted_H": 4.788,
"predicted_BB": 2.928,
"predicted_SO": 4.091,
"predicted_HR": 0.725,
"predicted_ERA": 4.7607,
"predicted_WHIP": 1.4173
}
},
"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.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.88,
"final": 2.51,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.788,
"final": 4.8771,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.928,
"final": 3.3787,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.091,
"final": 3.2119,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.725,
"final": 0.4202,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7607,
"final": 4.7607,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4173,
"final": 1.4173,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 25,
"H": 46,
"BB": 29,
"SO": 42,
"HR": 7,
"ERA": 4.090909090909091,
"WHIP": 1.3636363636363635,
"K9": 6.872727272727273,
"HR9": 1.1454545454545455,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.9709684823206615,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"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": 4,
"predicted_SO": 2,
"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": 5,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"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": 4.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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.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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 3.0,
"delta": 1.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": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 1,
"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": {
"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": "ARI",
"games": 141,
"wins": 74,
"losses": 67,
"win_pct": 0.5248,
"runs_scored": 628.0,
"runs_allowed": 629.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0071,
"avg_runs_scored": 4.4539,
"avg_runs_allowed": 4.461,
"offense_index": 0.9959,
"defense_index": 1.0025,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.0,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.0202
},
"opponent": {
"team": "HOU",
"games": 141,
"wins": 72,
"losses": 69,
"win_pct": 0.5106,
"runs_scored": 639.0,
"runs_allowed": 677.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2695,
"avg_runs_scored": 4.5319,
"avg_runs_allowed": 4.8014,
"offense_index": 1.0134,
"defense_index": 0.9314,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0459
},
"edges": {
"quality_edge": -0.0257,
"offense_edge": -0.0041,
"opponent_offense_edge": 0.0134,
"defense_strength": 0.0025,
"opponent_defense_weakness": 0.0686,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9985,
"run_prevention": 1.0032,
"strikeout": 0.9982
},
"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": 535.0,
"k_percent": 15.4,
"bb_percent": 10.4,
"woba": 0.356,
"xwoba": 0.392,
"sweet_spot_percent": 38.2,
"barrel_batted_rate": 12.1,
"hard_hit_percent": 43.0,
"avg_best_speed": 79.3163,
"avg_hyper_speed": 94.8492,
"whiff_percent": 21.7,
"swing_percent": 48.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.4298,
"command_and_miss": -0.6529,
"regression_edge": -1.0286,
"xwoba_edge": -2.3143,
"barrel_edge": -1.0889,
"hard_hit_edge": -0.7429,
"whiff_edge": -0.5,
"bb_edge": -0.3,
"pitch_design_score": -0.0345
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "518876",
"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.25223922501904,
"release_spin_rate": 2316.2310668157406,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.25223922501904,
"release_spin_rate": 2316.2310668157406,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2522,
"release_spin_rate": 2316.2311,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"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.2463,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"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.0761,
"sample_weight": 1.0,
"run_prevention_factor": 1.0915,
"strikeout_factor": 0.9429,
"walk_factor": 1.024,
"homer_factor": 1.1863,
"woba_minus_xwoba": -0.036,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "518876",
"espn_id": 32968,
"player_name": "Merrill Kelly",
"team": "ARI",
"role": "pitcher",
"espn_rank": 546,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 546,
"gp_value": 25.0,
"gp_rank": 304,
"gs_value": 25.0,
"gs_rank": 54,
"qs_value": 8.0,
"qs_rank": 72,
"era_value": 5.0823,
"era_rank": 51.0,
"w_value": 9.0,
"w_rank": 37,
"l_value": 12.0,
"l_rank": 7,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 141.2,
"ip_rank": 48,
"h_value": 146.0,
"h_rank": 18,
"er_value": 80.0,
"er_rank": 8,
"hr_value": 26.0,
"hr_rank": 8,
"bb_value": 64.0,
"bb_rank": 9,
"k_value": 95.0,
"k_rank": 104,
"k_per_9_value": 6.035294,
"k_per_9_rank": 58,
"whip_value": 1.4823,
"whip_rank": 51.0,
"war_value": -0.05,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0915,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0915,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.024,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1863,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9429,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"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 +0."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260904_ARI@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"
}
} |
| 20260904 | 20260904_ARI@HOU | home | Cristian Javier | Cristian Javier | True | 4.1 | 5.0 | 2 | 4 | 1 | -3 | 5/1 | 3/3 | 3/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.447761194029851,
"WHIP": 1.6343283582089554,
"IP": 44.2,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 3.917,
"recent_avg_IP": 4.4,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.247,
"sample_weight": 0.668,
"run_prevention_factor": 1.021,
"strikeout_factor": 1.0069,
"walk_factor": 1.0013,
"homer_factor": 1.0294,
"regression_flag": "neutral",
"k_percent": 20.6,
"bb_percent": 9.3,
"woba": 0.373,
"xwoba": 0.346,
"barrel_percent": 8.5,
"hard_hit_percent": 36.2,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 780,
"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": "664299",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 15.0,
"R": 15.0,
"H": 30.0,
"BB": 4.0,
"SO": 21.0,
"HR": 5.0,
"BF": 103.0,
"Pitches": 426.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 6.0,
"BB": 0.8,
"SO": 4.2,
"HR": 1.0,
"BF": 20.6,
"Pitches": 85.2
},
"rates": {
"ERA": 5.7857,
"WHIP": 1.4571,
"ER_per_IP": 0.64286,
"H_per_IP": 1.28571,
"BB_per_IP": 0.17143,
"SO_per_IP": 0.9,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 35.1,
"ER": 19.0,
"R": 19.0,
"H": 41.0,
"BB": 10.0,
"SO": 38.0,
"HR": 6.0,
"BF": 156.0,
"Pitches": 645.0
},
"per_game": {
"IP": 3.2,
"ER": 1.9,
"R": 1.9,
"H": 4.1,
"BB": 1.0,
"SO": 3.8,
"HR": 0.6,
"BF": 15.6,
"Pitches": 64.5
},
"rates": {
"ERA": 4.8396,
"WHIP": 1.4434,
"ER_per_IP": 0.53774,
"H_per_IP": 1.16038,
"BB_per_IP": 0.28302,
"SO_per_IP": 1.07547,
"HR_per_IP": 0.16981
}
},
"season": {
"games": 13,
"totals": {
"IP": 44.2,
"ER": 32.0,
"R": 32.0,
"H": 54.0,
"BB": 19.0,
"SO": 42.0,
"HR": 8.0,
"BF": 204.0,
"Pitches": 821.0
},
"per_game": {
"IP": 3.1,
"ER": 2.4615,
"R": 2.4615,
"H": 4.1538,
"BB": 1.4615,
"SO": 3.2308,
"HR": 0.6154,
"BF": 15.6923,
"Pitches": 63.1538
},
"rates": {
"ERA": 6.4478,
"WHIP": 1.6343,
"ER_per_IP": 0.71642,
"H_per_IP": 1.20896,
"BB_per_IP": 0.42537,
"SO_per_IP": 0.9403,
"HR_per_IP": 0.1791
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.421,
"predicted_H": 4.771,
"predicted_BB": 1.205,
"predicted_SO": 3.966,
"predicted_HR": 0.739,
"predicted_ERA": 5.2764,
"predicted_WHIP": 1.4473
}
},
"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": 4.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.421,
"final": 3.159,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.771,
"final": 4.878,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.205,
"final": 2.0439,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.966,
"final": 3.5145,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.739,
"final": 0.861,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.2764,
"final": 5.2764,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4473,
"final": 1.4473,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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.1,
"ER": 19,
"H": 41,
"BB": 10,
"SO": 38,
"HR": 6,
"ERA": 4.839622641509434,
"WHIP": 1.4433962264150946,
"K9": 9.679245283018869,
"HR9": 1.528301886792453,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 1.0571927533326684,
"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": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.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": "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": 4.0,
"predicted_H": 5.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
},
"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": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"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": 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.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": 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": 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.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": "HOU",
"games": 141,
"wins": 72,
"losses": 69,
"win_pct": 0.5106,
"runs_scored": 639.0,
"runs_allowed": 677.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2695,
"avg_runs_scored": 4.5319,
"avg_runs_allowed": 4.8014,
"offense_index": 1.0134,
"defense_index": 0.9314,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0459
},
"opponent": {
"team": "ARI",
"games": 141,
"wins": 74,
"losses": 67,
"win_pct": 0.5248,
"runs_scored": 628.0,
"runs_allowed": 629.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0071,
"avg_runs_scored": 4.4539,
"avg_runs_allowed": 4.461,
"offense_index": 0.9959,
"defense_index": 1.0025,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.0,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.0202
},
"edges": {
"quality_edge": 0.0257,
"offense_edge": 0.0134,
"opponent_offense_edge": -0.0041,
"defense_strength": -0.0686,
"opponent_defense_weakness": -0.0025,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9991,
"run_prevention": 1.0049,
"strikeout": 1.0011
},
"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": 167.0,
"k_percent": 20.6,
"bb_percent": 9.3,
"woba": 0.373,
"xwoba": 0.346,
"sweet_spot_percent": 40.4,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 36.2,
"avg_best_speed": 80.3139,
"avg_hyper_speed": 94.2307,
"whiff_percent": 28.3,
"swing_percent": 52.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8185,
"command_and_miss": 0.0664,
"regression_edge": 0.7714,
"xwoba_edge": -1.0,
"barrel_edge": -0.2889,
"hard_hit_edge": 0.2286,
"whiff_edge": 0.4429,
"bb_edge": -0.025,
"pitch_design_score": -0.073
},
"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.56457245574717,
"release_spin_rate": 2333.204506137456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.56457245574717,
"release_spin_rate": 2333.204506137456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.5646,
"release_spin_rate": 2333.2045,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.073,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5214,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.247,
"sample_weight": 0.668,
"run_prevention_factor": 1.021,
"strikeout_factor": 1.0069,
"walk_factor": 1.0013,
"homer_factor": 1.0294,
"woba_minus_xwoba": 0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "664299",
"espn_id": 41261,
"player_name": "Cristian Javier",
"team": "HOU",
"role": "pitcher",
"espn_rank": 780,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 780,
"gp_value": 13.0,
"gp_rank": 478,
"gs_value": 8.0,
"gs_rank": 183,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 6.4477,
"era_rank": null,
"w_value": 1.0,
"w_rank": 402,
"l_value": 5.0,
"l_rank": 130,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 44.2,
"ip_rank": 324,
"h_value": 54.0,
"h_rank": 209,
"er_value": 32.0,
"er_rank": 171,
"hr_value": 8.0,
"hr_rank": 197,
"bb_value": 19.0,
"bb_rank": 301,
"k_value": 42.0,
"k_rank": 327,
"k_per_9_value": 8.462687,
"k_per_9_rank": 27,
"whip_value": 1.6343,
"whip_rank": null,
"war_value": -0.55,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.014,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.014,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0009,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0196,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0046,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260904_ARI@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"
}
} |
| 20260904 | 20260904_ATL@PHI | away | Chris Sale | Chris Sale | True | 6.1 | 6.0 | -1 | 2 | 2 | 0 | 6/6 | 0/1 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.0625,
"WHIP": 1.0,
"IP": 144.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 6.0,
"recent_avg_IP": 6.6,
"last_start_IP": 9.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7112,
"sample_weight": 1.0,
"run_prevention_factor": 0.9395,
"strikeout_factor": 1.0794,
"walk_factor": 0.914,
"homer_factor": 0.9085,
"regression_flag": "neutral",
"k_percent": 30.7,
"bb_percent": 4.9,
"woba": 0.257,
"xwoba": 0.269,
"barrel_percent": 5.3,
"hard_hit_percent": 34.0,
"whiff_percent": 30.3
},
"espn_rank": {
"rank": 7,
"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": "519242",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 6.0,
"R": 6.0,
"H": 25.0,
"BB": 2.0,
"SO": 43.0,
"HR": 0.0,
"BF": 125.0,
"Pitches": 508.0
},
"per_game": {
"IP": 6.2,
"ER": 1.2,
"R": 1.2,
"H": 5.0,
"BB": 0.4,
"SO": 8.6,
"HR": 0.0,
"BF": 25.0,
"Pitches": 101.6
},
"rates": {
"ERA": 1.6364,
"WHIP": 0.8182,
"ER_per_IP": 0.18182,
"H_per_IP": 0.75758,
"BB_per_IP": 0.06061,
"SO_per_IP": 1.30303,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 13.0,
"R": 14.0,
"H": 49.0,
"BB": 7.0,
"SO": 78.0,
"HR": 2.0,
"BF": 234.0,
"Pitches": 930.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.4,
"H": 4.9,
"BB": 0.7,
"SO": 7.8,
"HR": 0.2,
"BF": 23.4,
"Pitches": 93.0
},
"rates": {
"ERA": 1.95,
"WHIP": 0.9333,
"ER_per_IP": 0.21667,
"H_per_IP": 0.81667,
"BB_per_IP": 0.11667,
"SO_per_IP": 1.3,
"HR_per_IP": 0.03333
}
},
"season": {
"games": 24,
"totals": {
"IP": 144.0,
"ER": 33.0,
"R": 38.0,
"H": 116.0,
"BB": 28.0,
"SO": 177.0,
"HR": 8.0,
"BF": 576.0,
"Pitches": 2280.0
},
"per_game": {
"IP": 6.0,
"ER": 1.375,
"R": 1.5833,
"H": 4.8333,
"BB": 1.1667,
"SO": 7.375,
"HR": 0.3333,
"BF": 24.0,
"Pitches": 95.0
},
"rates": {
"ERA": 2.0625,
"WHIP": 1.0,
"ER_per_IP": 0.22917,
"H_per_IP": 0.80556,
"BB_per_IP": 0.19444,
"SO_per_IP": 1.22917,
"HR_per_IP": 0.05556
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.602,
"predicted_H": 5.167,
"predicted_BB": 0.962,
"predicted_SO": 7.737,
"predicted_HR": 0.277,
"predicted_ERA": 2.2861,
"predicted_WHIP": 0.972
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.602,
"final": 2.1931,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.167,
"final": 5.5192,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.962,
"final": 0.5552,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.737,
"final": 6.1569,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.277,
"final": 1.0056,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2861,
"final": 2.2861,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.972,
"final": 0.972,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 13,
"H": 49,
"BB": 7,
"SO": 78,
"HR": 2,
"ERA": 1.95,
"WHIP": 0.9333333333333333,
"K9": 11.7,
"HR9": 0.3,
"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-08-27T00:00:00"
},
"recent_form_boost": 0.719358633835813,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 4.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": "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": 0,
"predicted_SO": 8,
"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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"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": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"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": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"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": 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": 1.0,
"delta": 1.0,
"percent_delta": null,
"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": 8.0,
"after": 6.0,
"delta": -2.0,
"percent_delta": -0.25,
"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": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 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": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.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": 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": 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": "ATL",
"games": 140,
"wins": 83,
"losses": 57,
"win_pct": 0.5929,
"runs_scored": 653.0,
"runs_allowed": 535.0,
"run_differential": 118.0,
"run_differential_per_game": 0.8429,
"avg_runs_scored": 4.6643,
"avg_runs_allowed": 3.8214,
"offense_index": 1.0411,
"defense_index": 1.1724,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.3,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.2874
},
"opponent": {
"team": "PHI",
"games": 140,
"wins": 79,
"losses": 61,
"win_pct": 0.5643,
"runs_scored": 631.0,
"runs_allowed": 595.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2571,
"avg_runs_scored": 4.5071,
"avg_runs_allowed": 4.25,
"offense_index": 1.006,
"defense_index": 1.0542,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 2.7,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1562
},
"edges": {
"quality_edge": 0.1312,
"offense_edge": 0.0411,
"opponent_offense_edge": 0.006,
"defense_strength": 0.1724,
"opponent_defense_weakness": -0.0542,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0102,
"run_prevention": 0.9772,
"strikeout": 1.0035
},
"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": 491.0,
"k_percent": 30.7,
"bb_percent": 4.9,
"woba": 0.257,
"xwoba": 0.269,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 34.0,
"avg_best_speed": 76.9742,
"avg_hyper_speed": 93.351,
"whiff_percent": 30.3,
"swing_percent": 50.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.86,
"command_and_miss": 1.0357,
"regression_edge": -0.3429,
"xwoba_edge": 1.2,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.5429,
"whiff_edge": 0.7286,
"bb_edge": 1.075,
"pitch_design_score": -0.0669
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "519242",
"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.67399153905109,
"release_spin_rate": 2344.7057974290524,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.67399153905109,
"release_spin_rate": 2344.7057974290524,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.674,
"release_spin_rate": 2344.7058,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0669,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4776,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.7112,
"sample_weight": 1.0,
"run_prevention_factor": 0.9395,
"strikeout_factor": 1.0794,
"walk_factor": 0.914,
"homer_factor": 0.9085,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "519242",
"espn_id": 30948,
"player_name": "Chris Sale",
"team": "ATL",
"role": "pitcher",
"espn_rank": 7,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 7,
"gp_value": 24.0,
"gp_rank": 323,
"gs_value": 24.0,
"gs_rank": 65,
"qs_value": 17.0,
"qs_rank": 5,
"era_value": 2.0625,
"era_rank": 3.0,
"w_value": 13.0,
"w_rank": 9,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 144.0,
"ip_rank": 46,
"h_value": 116.0,
"h_rank": 78,
"er_value": 33.0,
"er_rank": 168,
"hr_value": 8.0,
"hr_rank": 197,
"bb_value": 28.0,
"bb_rank": 175,
"k_value": 177.0,
"k_rank": 10,
"k_per_9_value": 11.0625,
"k_per_9_rank": 5,
"whip_value": 1.0,
"whip_rank": 6.0,
"war_value": 5.06,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9395,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9395,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.914,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9085,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0794,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260904_ATL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260904 | 20260904_ATL@PHI | home | Cristopher Sánchez | Cristopher Sánchez | True | 6.1 | 6.0 | -1 | 3 | 3 | 0 | 8/5 | 1/3 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.515209125475285,
"WHIP": 1.1920152091254752,
"IP": 175.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 6.262,
"recent_avg_IP": 6.133,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5142,
"sample_weight": 1.0,
"run_prevention_factor": 0.9563,
"strikeout_factor": 1.0771,
"walk_factor": 0.924,
"homer_factor": 0.9954,
"regression_flag": "neutral",
"k_percent": 27.8,
"bb_percent": 5.4,
"woba": 0.288,
"xwoba": 0.281,
"barrel_percent": 7.1,
"hard_hit_percent": 41.8,
"whiff_percent": 32.8
},
"espn_rank": {
"rank": 1,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "650911",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 7.0,
"R": 7.0,
"H": 29.0,
"BB": 6.0,
"SO": 34.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 471.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 5.8,
"BB": 1.2,
"SO": 6.8,
"HR": 0.4,
"BF": 24.6,
"Pitches": 94.2
},
"rates": {
"ERA": 2.0543,
"WHIP": 1.1413,
"ER_per_IP": 0.22826,
"H_per_IP": 0.94565,
"BB_per_IP": 0.19565,
"SO_per_IP": 1.1087,
"HR_per_IP": 0.06522
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 23.0,
"R": 24.0,
"H": 66.0,
"BB": 16.0,
"SO": 66.0,
"HR": 6.0,
"BF": 251.0,
"Pitches": 956.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.4,
"H": 6.6,
"BB": 1.6,
"SO": 6.6,
"HR": 0.6,
"BF": 25.1,
"Pitches": 95.6
},
"rates": {
"ERA": 3.5486,
"WHIP": 1.4057,
"ER_per_IP": 0.39429,
"H_per_IP": 1.13143,
"BB_per_IP": 0.27429,
"SO_per_IP": 1.13143,
"HR_per_IP": 0.10286
}
},
"season": {
"games": 28,
"totals": {
"IP": 175.1,
"ER": 49.0,
"R": 55.0,
"H": 170.0,
"BB": 39.0,
"SO": 202.0,
"HR": 14.0,
"BF": 726.0,
"Pitches": 2673.0
},
"per_game": {
"IP": 6.1,
"ER": 1.75,
"R": 1.9643,
"H": 6.0714,
"BB": 1.3929,
"SO": 7.2143,
"HR": 0.5,
"BF": 25.9286,
"Pitches": 95.4643
},
"rates": {
"ERA": 2.5152,
"WHIP": 1.192,
"ER_per_IP": 0.27947,
"H_per_IP": 0.96958,
"BB_per_IP": 0.22243,
"SO_per_IP": 1.15209,
"HR_per_IP": 0.07985
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.996,
"predicted_H": 6.161,
"predicted_BB": 1.527,
"predicted_SO": 6.699,
"predicted_HR": 0.556,
"predicted_ERA": 2.9421,
"predicted_WHIP": 1.2589
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.0,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.996,
"final": 1.9977,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 6.161,
"final": 6.9224,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.527,
"final": 1.3088,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.699,
"final": 6.4096,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.556,
"final": 0.3258,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9421,
"final": 2.9421,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2589,
"final": 1.2589,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.1,
"ER": 23,
"H": 66,
"BB": 16,
"SO": 66,
"HR": 6,
"ERA": 3.5485714285714285,
"WHIP": 1.4057142857142857,
"K9": 10.182857142857143,
"HR9": 0.9257142857142857,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.9110074433596225,
"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": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"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": 8,
"predicted_BB": 1,
"predicted_SO": 7,
"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": 2.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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 8.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": 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.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": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"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_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": 2.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 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.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": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"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_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": 140,
"wins": 79,
"losses": 61,
"win_pct": 0.5643,
"runs_scored": 631.0,
"runs_allowed": 595.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2571,
"avg_runs_scored": 4.5071,
"avg_runs_allowed": 4.25,
"offense_index": 1.006,
"defense_index": 1.0542,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 2.7,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1562
},
"opponent": {
"team": "ATL",
"games": 140,
"wins": 83,
"losses": 57,
"win_pct": 0.5929,
"runs_scored": 653.0,
"runs_allowed": 535.0,
"run_differential": 118.0,
"run_differential_per_game": 0.8429,
"avg_runs_scored": 4.6643,
"avg_runs_allowed": 3.8214,
"offense_index": 1.0411,
"defense_index": 1.1724,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.3,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.2874
},
"edges": {
"quality_edge": -0.1312,
"offense_edge": 0.006,
"opponent_offense_edge": 0.0411,
"defense_strength": 0.0542,
"opponent_defense_weakness": -0.1724,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9947,
"run_prevention": 1.0077,
"strikeout": 0.9928
},
"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": 670.0,
"k_percent": 27.8,
"bb_percent": 5.4,
"woba": 0.288,
"xwoba": 0.281,
"sweet_spot_percent": 31.7,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 41.8,
"avg_best_speed": 78.0953,
"avg_hyper_speed": 94.4254,
"whiff_percent": 32.8,
"swing_percent": 50.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4375,
"command_and_miss": 0.9493,
"regression_edge": 0.2,
"xwoba_edge": 0.8571,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.5714,
"whiff_edge": 1.0857,
"bb_edge": 0.95,
"pitch_design_score": 0.0295
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"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": 90.39508390967275,
"release_spin_rate": 2081.2610513716268,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 90.39508390967275,
"release_spin_rate": 2081.2610513716268,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.3951,
"release_spin_rate": 2081.2611,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0295,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2108,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.5142,
"sample_weight": 1.0,
"run_prevention_factor": 0.9563,
"strikeout_factor": 1.0771,
"walk_factor": 0.924,
"homer_factor": 0.9954,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650911",
"espn_id": 42359,
"player_name": "Cristopher Sanchez",
"team": "PHI",
"role": "pitcher",
"espn_rank": 1,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 1,
"gp_value": 28.0,
"gp_rank": 232,
"gs_value": 28.0,
"gs_rank": 8,
"qs_value": 19.0,
"qs_rank": 2,
"era_value": 2.5152,
"era_rank": 6.0,
"w_value": 16.0,
"w_rank": 1,
"l_value": 4.0,
"l_rank": 170,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 175.1,
"ip_rank": 3,
"h_value": 170.0,
"h_rank": 3,
"er_value": 49.0,
"er_rank": 100,
"hr_value": 14.0,
"hr_rank": 101,
"bb_value": 39.0,
"bb_rank": 83,
"k_value": 202.0,
"k_rank": 6,
"k_per_9_value": 10.368821,
"k_per_9_rank": 54,
"whip_value": 1.192,
"whip_rank": 28.0,
"war_value": 7.6,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9563,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9563,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9954,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0771,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 8,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 28,
"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 +0."
}
],
"provenance": {
"prediction": "output/games/20260904_ATL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260904 | 20260904_BOS@BAL | away | Ranger Suarez | Ranger Suarez | True | 5.0 | 7.0 | 6 | 3 | 0 | -3 | 2/5 | 2/1 | 2/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6388140161725064,
"WHIP": 1.2371967654986522,
"IP": 123.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.153,
"recent_avg_IP": 4.733,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1865,
"sample_weight": 1.0,
"run_prevention_factor": 0.9841,
"strikeout_factor": 0.9903,
"walk_factor": 0.968,
"homer_factor": 0.925,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 7.6,
"woba": 0.294,
"xwoba": 0.299,
"barrel_percent": 5.1,
"hard_hit_percent": 33.0,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 97,
"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": "624133",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 15.0,
"R": 16.0,
"H": 26.0,
"BB": 11.0,
"SO": 14.0,
"HR": 3.0,
"BF": 107.0,
"Pitches": 438.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.2,
"H": 5.2,
"BB": 2.2,
"SO": 2.8,
"HR": 0.6,
"BF": 21.4,
"Pitches": 87.6
},
"rates": {
"ERA": 5.7042,
"WHIP": 1.5634,
"ER_per_IP": 0.6338,
"H_per_IP": 1.09859,
"BB_per_IP": 0.46479,
"SO_per_IP": 0.59155,
"HR_per_IP": 0.12676
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.0,
"ER": 25.0,
"R": 28.0,
"H": 52.0,
"BB": 15.0,
"SO": 44.0,
"HR": 4.0,
"BF": 206.0,
"Pitches": 817.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5,
"R": 2.8,
"H": 5.2,
"BB": 1.5,
"SO": 4.4,
"HR": 0.4,
"BF": 20.6,
"Pitches": 81.7
},
"rates": {
"ERA": 4.7872,
"WHIP": 1.4255,
"ER_per_IP": 0.53191,
"H_per_IP": 1.10638,
"BB_per_IP": 0.31915,
"SO_per_IP": 0.93617,
"HR_per_IP": 0.08511
}
},
"season": {
"games": 24,
"totals": {
"IP": 123.2,
"ER": 50.0,
"R": 53.0,
"H": 114.0,
"BB": 39.0,
"SO": 119.0,
"HR": 8.0,
"BF": 516.0,
"Pitches": 2013.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0833,
"R": 2.2083,
"H": 4.75,
"BB": 1.625,
"SO": 4.9583,
"HR": 0.3333,
"BF": 21.5,
"Pitches": 83.875
},
"rates": {
"ERA": 3.6388,
"WHIP": 1.2372,
"ER_per_IP": 0.40431,
"H_per_IP": 0.92183,
"BB_per_IP": 0.31536,
"SO_per_IP": 0.96226,
"HR_per_IP": 0.06469
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.593,
"predicted_H": 5.017,
"predicted_BB": 1.824,
"predicted_SO": 3.883,
"predicted_HR": 0.515,
"predicted_ERA": 4.8838,
"predicted_WHIP": 1.4313
}
},
"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": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.593,
"final": 2.7651,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.017,
"final": 3.7413,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.824,
"final": 1.8984,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.883,
"final": 3.0868,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.515,
"final": 0.2972,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8838,
"final": 4.8838,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4313,
"final": 1.4313,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 25,
"H": 52,
"BB": 15,
"SO": 44,
"HR": 4,
"ERA": 4.787234042553192,
"WHIP": 1.425531914893617,
"K9": 8.425531914893616,
"HR9": 0.7659574468085106,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 1.0508524281620542,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 2.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": "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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": 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": 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": "BOS",
"games": 141,
"wins": 76,
"losses": 65,
"win_pct": 0.539,
"runs_scored": 633.0,
"runs_allowed": 555.0,
"run_differential": 78.0,
"run_differential_per_game": 0.5532,
"avg_runs_scored": 4.4894,
"avg_runs_allowed": 3.9362,
"offense_index": 1.0021,
"defense_index": 1.1382,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.3,
"run_differential": -23.0
},
"available": true,
"quality_score": 0.0661
},
"opponent": {
"team": "BAL",
"games": 141,
"wins": 69,
"losses": 72,
"win_pct": 0.4894,
"runs_scored": 640.0,
"runs_allowed": 661.0,
"run_differential": -21.0,
"run_differential_per_game": -0.1489,
"avg_runs_scored": 4.539,
"avg_runs_allowed": 4.6879,
"offense_index": 1.0131,
"defense_index": 0.9557,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.3,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.0077
},
"edges": {
"quality_edge": 0.0584,
"offense_edge": 0.0021,
"opponent_offense_edge": 0.0131,
"defense_strength": 0.1382,
"opponent_defense_weakness": 0.0443,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.006,
"run_prevention": 0.9854,
"strikeout": 1.0007
},
"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": 467.0,
"k_percent": 23.1,
"bb_percent": 7.6,
"woba": 0.294,
"xwoba": 0.299,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 33.0,
"avg_best_speed": 74.9328,
"avg_hyper_speed": 93.1318,
"whiff_percent": 22.3,
"swing_percent": 45.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3837,
"command_and_miss": 0.0121,
"regression_edge": -0.1429,
"xwoba_edge": 0.3429,
"barrel_edge": 0.4667,
"hard_hit_edge": 0.6857,
"whiff_edge": -0.4143,
"bb_edge": 0.4,
"pitch_design_score": -0.2148
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "624133",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 77,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 86.0327454593224,
"release_spin_rate": 1975.9626802659607,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 86.0327454593224,
"release_spin_rate": 1975.9626802659607,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.0327,
"release_spin_rate": 1975.9627,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2148,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5341,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_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": 0.9841,
"strikeout_factor": 0.9903,
"walk_factor": 0.968,
"homer_factor": 0.925,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "624133",
"espn_id": 39817,
"player_name": "Ranger Suarez",
"team": "BOS",
"role": "pitcher",
"espn_rank": 97,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 97,
"gp_value": 24.0,
"gp_rank": 323,
"gs_value": 24.0,
"gs_rank": 65,
"qs_value": 7.0,
"qs_rank": 76,
"era_value": 3.6388,
"era_rank": null,
"w_value": 5.0,
"w_rank": 137,
"l_value": 4.0,
"l_rank": 170,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 123.2,
"ip_rank": 85,
"h_value": 114.0,
"h_rank": 82,
"er_value": 50.0,
"er_rank": 98,
"hr_value": 8.0,
"hr_rank": 197,
"bb_value": 39.0,
"bb_rank": 83,
"k_value": 119.0,
"k_rank": 65,
"k_per_9_value": 8.6603775,
"k_per_9_rank": 20,
"whip_value": 1.2371,
"whip_rank": null,
"war_value": 1.68,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9841,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9841,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.925,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9903,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 0,
"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 +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 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/20260904_BOS@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"
}
} |
| 20260904 | 20260904_BOS@BAL | home | Shane Baz | Shane Baz | True | 5.2 | 6.1 | 2 | 4 | 1 | -3 | 4/4 | 1/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.012738853503185,
"WHIP": 1.3503184713375795,
"IP": 157.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.815,
"recent_avg_IP": 5.733,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0683,
"sample_weight": 1.0,
"run_prevention_factor": 1.0058,
"strikeout_factor": 0.9789,
"walk_factor": 0.98,
"homer_factor": 1.0066,
"regression_flag": "neutral",
"k_percent": 20.8,
"bb_percent": 8.2,
"woba": 0.315,
"xwoba": 0.31,
"barrel_percent": 6.4,
"hard_hit_percent": 41.6,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 117,
"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": "669358",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 15.0,
"R": 15.0,
"H": 26.0,
"BB": 10.0,
"SO": 28.0,
"HR": 2.0,
"BF": 118.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.2,
"BB": 2.0,
"SO": 5.6,
"HR": 0.4,
"BF": 23.6,
"Pitches": 88.4
},
"rates": {
"ERA": 4.7093,
"WHIP": 1.2558,
"ER_per_IP": 0.52326,
"H_per_IP": 0.90698,
"BB_per_IP": 0.34884,
"SO_per_IP": 0.97674,
"HR_per_IP": 0.06977
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 23.0,
"R": 27.0,
"H": 58.0,
"BB": 16.0,
"SO": 52.0,
"HR": 2.0,
"BF": 235.0,
"Pitches": 912.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3,
"R": 2.7,
"H": 5.8,
"BB": 1.6,
"SO": 5.2,
"HR": 0.2,
"BF": 23.5,
"Pitches": 91.2
},
"rates": {
"ERA": 3.6964,
"WHIP": 1.3214,
"ER_per_IP": 0.41071,
"H_per_IP": 1.03571,
"BB_per_IP": 0.28571,
"SO_per_IP": 0.92857,
"HR_per_IP": 0.03571
}
},
"season": {
"games": 27,
"totals": {
"IP": 157.0,
"ER": 70.0,
"R": 80.0,
"H": 157.0,
"BB": 55.0,
"SO": 139.0,
"HR": 11.0,
"BF": 669.0,
"Pitches": 2556.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5926,
"R": 2.963,
"H": 5.8148,
"BB": 2.037,
"SO": 5.1481,
"HR": 0.4074,
"BF": 24.7778,
"Pitches": 94.6667
},
"rates": {
"ERA": 4.0127,
"WHIP": 1.3503,
"ER_per_IP": 0.44586,
"H_per_IP": 1.0,
"BB_per_IP": 0.35032,
"SO_per_IP": 0.88535,
"HR_per_IP": 0.07006
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.679,
"predicted_H": 5.501,
"predicted_BB": 1.892,
"predicted_SO": 5.332,
"predicted_HR": 0.406,
"predicted_ERA": 4.2551,
"predicted_WHIP": 1.3046
}
},
"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": 4.0,
"form": 2.679,
"final": 3.2285,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.501,
"final": 4.8766,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.892,
"final": 1.5209,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.332,
"final": 5.6099,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.406,
"final": 0.2371,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2551,
"final": 4.2551,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3046,
"final": 1.3046,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 23,
"H": 58,
"BB": 16,
"SO": 52,
"HR": 2,
"ERA": 3.696428571428572,
"WHIP": 1.3214285714285716,
"K9": 8.357142857142858,
"HR9": 0.32142857142857145,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.9255342290739084,
"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": 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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669358",
"player_name": "Shane Baz",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.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": "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": 0.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": {}
}
],
"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": 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": "BAL",
"games": 141,
"wins": 69,
"losses": 72,
"win_pct": 0.4894,
"runs_scored": 640.0,
"runs_allowed": 661.0,
"run_differential": -21.0,
"run_differential_per_game": -0.1489,
"avg_runs_scored": 4.539,
"avg_runs_allowed": 4.6879,
"offense_index": 1.0131,
"defense_index": 0.9557,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.3,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.0077
},
"opponent": {
"team": "BOS",
"games": 141,
"wins": 76,
"losses": 65,
"win_pct": 0.539,
"runs_scored": 633.0,
"runs_allowed": 555.0,
"run_differential": 78.0,
"run_differential_per_game": 0.5532,
"avg_runs_scored": 4.4894,
"avg_runs_allowed": 3.9362,
"offense_index": 1.0021,
"defense_index": 1.1382,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.3,
"run_differential": -23.0
},
"available": true,
"quality_score": 0.0661
},
"edges": {
"quality_edge": -0.0584,
"offense_edge": 0.0131,
"opponent_offense_edge": 0.0021,
"defense_strength": -0.0443,
"opponent_defense_weakness": -0.1382,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9963,
"run_prevention": 1.0077,
"strikeout": 0.9981
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669358",
"profile": {
"available": true,
"pitcher_id": "669358",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 596.0,
"k_percent": 20.8,
"bb_percent": 8.2,
"woba": 0.315,
"xwoba": 0.31,
"sweet_spot_percent": 35.5,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 41.6,
"avg_best_speed": 80.2217,
"avg_hyper_speed": 94.4519,
"whiff_percent": 22.6,
"swing_percent": 48.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0846,
"command_and_miss": -0.1507,
"regression_edge": 0.1429,
"xwoba_edge": 0.0286,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.5429,
"whiff_edge": -0.3714,
"bb_edge": 0.25,
"pitch_design_score": 0.0501
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669358",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 90.76192251441194,
"release_spin_rate": 2407.5287280515663,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 90.76192251441194,
"release_spin_rate": 2407.5287280515663,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.7619,
"release_spin_rate": 2407.5287,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0501,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3575,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0683,
"sample_weight": 1.0,
"run_prevention_factor": 1.0058,
"strikeout_factor": 0.9789,
"walk_factor": 0.98,
"homer_factor": 1.0066,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669358",
"espn_id": 39639,
"player_name": "Shane Baz",
"team": "BAL",
"role": "pitcher",
"espn_rank": 117,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 117,
"gp_value": 27.0,
"gp_rank": 253,
"gs_value": 27.0,
"gs_rank": 21,
"qs_value": 11.0,
"qs_rank": 41,
"era_value": 4.0127,
"era_rank": 33.0,
"w_value": 5.0,
"w_rank": 137,
"l_value": 14.0,
"l_rank": 2,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 157.0,
"ip_rank": 16,
"h_value": 157.0,
"h_rank": 8,
"er_value": 70.0,
"er_rank": 23,
"hr_value": 11.0,
"hr_rank": 141,
"bb_value": 55.0,
"bb_rank": 20,
"k_value": 139.0,
"k_rank": 38,
"k_per_9_value": 7.968153,
"k_per_9_rank": 64,
"whip_value": 1.3503,
"whip_rank": 42.0,
"war_value": 1.5,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0058,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0058,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0066,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9789,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"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": "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/20260904_BOS@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"
}
} |
| 20260904 | 20260904_CHC@MIA | away | Shota Imanaga | Shota Imanaga | True | 5.1 | 6.0 | 2 | 0 | 1 | 1 | 2/3 | 3/0 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.011086474501108,
"WHIP": 1.1441241685144123,
"IP": 150.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.568,
"recent_avg_IP": 4.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1831,
"sample_weight": 1.0,
"run_prevention_factor": 0.9844,
"strikeout_factor": 1.0349,
"walk_factor": 0.93,
"homer_factor": 1.0279,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 5.7,
"woba": 0.32,
"xwoba": 0.301,
"barrel_percent": 9.8,
"hard_hit_percent": 36.1,
"whiff_percent": 29.2
},
"espn_rank": {
"rank": 138,
"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": "684007",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 15.0,
"R": 16.0,
"H": 29.0,
"BB": 6.0,
"SO": 29.0,
"HR": 9.0,
"BF": 106.0,
"Pitches": 428.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.2,
"H": 5.8,
"BB": 1.2,
"SO": 5.8,
"HR": 1.8,
"BF": 21.2,
"Pitches": 85.6
},
"rates": {
"ERA": 5.9559,
"WHIP": 1.5441,
"ER_per_IP": 0.66176,
"H_per_IP": 1.27941,
"BB_per_IP": 0.26471,
"SO_per_IP": 1.27941,
"HR_per_IP": 0.39706
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 20.0,
"R": 21.0,
"H": 54.0,
"BB": 12.0,
"SO": 56.0,
"HR": 13.0,
"BF": 220.0,
"Pitches": 900.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.1,
"H": 5.4,
"BB": 1.2,
"SO": 5.6,
"HR": 1.3,
"BF": 22.0,
"Pitches": 90.0
},
"rates": {
"ERA": 3.4615,
"WHIP": 1.2692,
"ER_per_IP": 0.38462,
"H_per_IP": 1.03846,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.07692,
"HR_per_IP": 0.25
}
},
"season": {
"games": 27,
"totals": {
"IP": 150.1,
"ER": 67.0,
"R": 69.0,
"H": 137.0,
"BB": 35.0,
"SO": 148.0,
"HR": 33.0,
"BF": 616.0,
"Pitches": 2413.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4815,
"R": 2.5556,
"H": 5.0741,
"BB": 1.2963,
"SO": 5.4815,
"HR": 1.2222,
"BF": 22.8148,
"Pitches": 89.3704
},
"rates": {
"ERA": 4.0111,
"WHIP": 1.1441,
"ER_per_IP": 0.44568,
"H_per_IP": 0.91131,
"BB_per_IP": 0.23282,
"SO_per_IP": 0.98448,
"HR_per_IP": 0.21951
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.659,
"predicted_H": 5.64,
"predicted_BB": 1.366,
"predicted_SO": 5.735,
"predicted_HR": 1.461,
"predicted_ERA": 4.6588,
"predicted_WHIP": 1.3639
}
},
"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.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.659,
"final": 1.5529,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.64,
"final": 4.1258,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.366,
"final": 2.0457,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.735,
"final": 5.4292,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.461,
"final": 0.8532,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6588,
"final": 4.6588,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3639,
"final": 1.3639,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 54,
"BB": 12,
"SO": 56,
"HR": 13,
"ERA": 3.4615384615384617,
"WHIP": 1.2692307692307692,
"K9": 9.692307692307692,
"HR9": 2.25,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.8978041466563258,
"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": 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": "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": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 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": 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": 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": 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": "CHC",
"games": 141,
"wins": 79,
"losses": 62,
"win_pct": 0.5603,
"runs_scored": 753.0,
"runs_allowed": 620.0,
"run_differential": 133.0,
"run_differential_per_game": 0.9433,
"avg_runs_scored": 5.3404,
"avg_runs_allowed": 4.3972,
"offense_index": 1.192,
"defense_index": 1.0189,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.9,
"avg_runs_allowed": 5.1,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1321
},
"opponent": {
"team": "MIA",
"games": 141,
"wins": 71,
"losses": 70,
"win_pct": 0.5035,
"runs_scored": 615.0,
"runs_allowed": 601.0,
"run_differential": 14.0,
"run_differential_per_game": 0.0993,
"avg_runs_scored": 4.3617,
"avg_runs_allowed": 4.2624,
"offense_index": 0.9736,
"defense_index": 1.0511,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.9,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0198
},
"edges": {
"quality_edge": 0.1519,
"offense_edge": 0.192,
"opponent_offense_edge": -0.0264,
"defense_strength": 0.0189,
"opponent_defense_weakness": -0.0511,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0077,
"run_prevention": 0.9863,
"strikeout": 1.0067
},
"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": 577.0,
"k_percent": 24.0,
"bb_percent": 5.7,
"woba": 0.32,
"xwoba": 0.301,
"sweet_spot_percent": 33.5,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 36.1,
"avg_best_speed": 77.9638,
"avg_hyper_speed": 93.799,
"whiff_percent": 29.2,
"swing_percent": 51.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0201,
"command_and_miss": 0.51,
"regression_edge": 0.5429,
"xwoba_edge": 0.2857,
"barrel_edge": -0.5778,
"hard_hit_edge": 0.2429,
"whiff_edge": 0.5714,
"bb_edge": 0.875,
"pitch_design_score": -0.1878
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "684007",
"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": 86.5154055046095,
"release_spin_rate": 2045.9740460181658,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 86.5154055046095,
"release_spin_rate": 2045.9740460181658,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.5154,
"release_spin_rate": 2045.974,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1878,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3411,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1831,
"sample_weight": 1.0,
"run_prevention_factor": 0.9844,
"strikeout_factor": 1.0349,
"walk_factor": 0.93,
"homer_factor": 1.0279,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "684007",
"espn_id": 5134630,
"player_name": "Shota Imanaga",
"team": "CHC",
"role": "pitcher",
"espn_rank": 138,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 138,
"gp_value": 27.0,
"gp_rank": 253,
"gs_value": 27.0,
"gs_rank": 21,
"qs_value": 11.0,
"qs_rank": 41,
"era_value": 4.011,
"era_rank": 32.0,
"w_value": 8.0,
"w_rank": 60,
"l_value": 10.0,
"l_rank": 14,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 150.1,
"ip_rank": 31,
"h_value": 137.0,
"h_rank": 32,
"er_value": 67.0,
"er_rank": 33,
"hr_value": 33.0,
"hr_rank": 1,
"bb_value": 35.0,
"bb_rank": 116,
"k_value": 148.0,
"k_rank": 29,
"k_per_9_value": 8.860311,
"k_per_9_rank": 25,
"whip_value": 1.1441,
"whip_rank": 19.0,
"war_value": 1.28,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9844,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9844,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.93,
"adjusted": 1
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0279,
"adjusted": 2
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0349,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"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 -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/20260904_CHC@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"
}
} |
| 20260904 | 20260904_CHC@MIA | home | Janson Junk | Janson Junk | True | 5.0 | 5.0 | 0 | 4 | 1 | -3 | 7/3 | 1/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.106796116504855,
"WHIP": 1.3009708737864079,
"IP": 103.0,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.1,
"recent_avg_IP": 4.667,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2553,
"sample_weight": 1.0,
"run_prevention_factor": 1.0217,
"strikeout_factor": 0.9103,
"walk_factor": 0.944,
"homer_factor": 1.0163,
"regression_flag": "neutral",
"k_percent": 16.1,
"bb_percent": 6.4,
"woba": 0.322,
"xwoba": 0.318,
"barrel_percent": 7.2,
"hard_hit_percent": 39.6,
"whiff_percent": 15.3
},
"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": 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": "676083",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 5.0,
"R": 6.0,
"H": 18.0,
"BB": 5.0,
"SO": 8.0,
"HR": 0.0,
"BF": 85.0,
"Pitches": 311.0
},
"per_game": {
"IP": 4.1,
"ER": 1.0,
"R": 1.2,
"H": 3.6,
"BB": 1.0,
"SO": 1.6,
"HR": 0.0,
"BF": 17.0,
"Pitches": 62.2
},
"rates": {
"ERA": 2.1094,
"WHIP": 1.0781,
"ER_per_IP": 0.23438,
"H_per_IP": 0.84375,
"BB_per_IP": 0.23438,
"SO_per_IP": 0.375,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.0,
"ER": 15.0,
"R": 18.0,
"H": 41.0,
"BB": 15.0,
"SO": 27.0,
"HR": 4.0,
"BF": 180.0,
"Pitches": 671.0
},
"per_game": {
"IP": 4.1,
"ER": 1.5,
"R": 1.8,
"H": 4.1,
"BB": 1.5,
"SO": 2.7,
"HR": 0.4,
"BF": 18.0,
"Pitches": 67.1
},
"rates": {
"ERA": 3.1395,
"WHIP": 1.3023,
"ER_per_IP": 0.34884,
"H_per_IP": 0.95349,
"BB_per_IP": 0.34884,
"SO_per_IP": 0.62791,
"HR_per_IP": 0.09302
}
},
"season": {
"games": 21,
"totals": {
"IP": 103.0,
"ER": 47.0,
"R": 52.0,
"H": 106.0,
"BB": 28.0,
"SO": 70.0,
"HR": 12.0,
"BF": 435.0,
"Pitches": 1626.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2381,
"R": 2.4762,
"H": 5.0476,
"BB": 1.3333,
"SO": 3.3333,
"HR": 0.5714,
"BF": 20.7143,
"Pitches": 77.4286
},
"rates": {
"ERA": 4.1068,
"WHIP": 1.301,
"ER_per_IP": 0.45631,
"H_per_IP": 1.02913,
"BB_per_IP": 0.27184,
"SO_per_IP": 0.67961,
"HR_per_IP": 0.1165
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.613,
"predicted_H": 4.246,
"predicted_BB": 1.366,
"predicted_SO": 2.76,
"predicted_HR": 0.334,
"predicted_ERA": 3.177,
"predicted_WHIP": 1.2283
}
},
"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.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.613,
"final": 2.6424,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.246,
"final": 5.4337,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.366,
"final": 1.2082,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.76,
"final": 3.2947,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.334,
"final": 0.6212,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.177,
"final": 3.177,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2283,
"final": 1.2283,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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.0,
"ER": 15,
"H": 41,
"BB": 15,
"SO": 27,
"HR": 4,
"ERA": 3.13953488372093,
"WHIP": 1.302325581395349,
"K9": 5.651162790697675,
"HR9": 0.8372093023255814,
"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-08-30T00:00:00"
},
"recent_form_boost": 0.862406114455968,
"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": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 4.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": "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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.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": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.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": 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": 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": 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": 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": "MIA",
"games": 141,
"wins": 71,
"losses": 70,
"win_pct": 0.5035,
"runs_scored": 615.0,
"runs_allowed": 601.0,
"run_differential": 14.0,
"run_differential_per_game": 0.0993,
"avg_runs_scored": 4.3617,
"avg_runs_allowed": 4.2624,
"offense_index": 0.9736,
"defense_index": 1.0511,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.9,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0198
},
"opponent": {
"team": "CHC",
"games": 141,
"wins": 79,
"losses": 62,
"win_pct": 0.5603,
"runs_scored": 753.0,
"runs_allowed": 620.0,
"run_differential": 133.0,
"run_differential_per_game": 0.9433,
"avg_runs_scored": 5.3404,
"avg_runs_allowed": 4.3972,
"offense_index": 1.192,
"defense_index": 1.0189,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.9,
"avg_runs_allowed": 5.1,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1321
},
"edges": {
"quality_edge": -0.1519,
"offense_edge": -0.0264,
"opponent_offense_edge": 0.192,
"defense_strength": 0.0511,
"opponent_defense_weakness": -0.0189,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9878,
"run_prevention": 1.0332,
"strikeout": 0.9801
},
"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": 372.0,
"k_percent": 16.1,
"bb_percent": 6.4,
"woba": 0.322,
"xwoba": 0.318,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 39.6,
"avg_best_speed": 79.6181,
"avg_hyper_speed": 94.5613,
"whiff_percent": 15.3,
"swing_percent": 48.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.126,
"command_and_miss": -0.7279,
"regression_edge": 0.1143,
"xwoba_edge": -0.2,
"barrel_edge": 0.0,
"hard_hit_edge": -0.2571,
"whiff_edge": -1.4143,
"bb_edge": 0.7,
"pitch_design_score": -0.0867
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"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": 88.32055855990507,
"release_spin_rate": 2207.610368540037,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 88.32055855990507,
"release_spin_rate": 2207.610368540037,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.3206,
"release_spin_rate": 2207.6104,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"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.619,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2553,
"sample_weight": 1.0,
"run_prevention_factor": 1.0217,
"strikeout_factor": 0.9103,
"walk_factor": 0.944,
"homer_factor": 1.0163,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676083",
"espn_id": 4881980,
"player_name": "Janson Junk",
"team": "MIA",
"role": "pitcher",
"espn_rank": 208,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 208,
"gp_value": 21.0,
"gp_rank": 364,
"gs_value": 20.0,
"gs_rank": 93,
"qs_value": 3.0,
"qs_rank": 136,
"era_value": 4.1067,
"era_rank": null,
"w_value": 6.0,
"w_rank": 101,
"l_value": 8.0,
"l_rank": 46,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 1.0,
"hld_rank": 265,
"ip_value": 103.0,
"ip_rank": 113,
"h_value": 106.0,
"h_rank": 102,
"er_value": 47.0,
"er_rank": 113,
"hr_value": 12.0,
"hr_rank": 126,
"bb_value": 28.0,
"bb_rank": 175,
"k_value": 70.0,
"k_rank": 169,
"k_per_9_value": 6.1165047,
"k_per_9_rank": 40,
"whip_value": 1.3009,
"whip_rank": null,
"war_value": 0.78,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0217,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0217,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0163,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9103,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260904_CHC@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"
}
} |
| 20260904 | 20260904_DET@CLE | away | Keider Montero | Andrew Sears | False | 6.0 | 5.2 | -1 | 2 | 1 | -1 | 5/4 | 2/2 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.237410071942446,
"WHIP": 0.9928057553956835,
"IP": 139.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.733,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1155,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 0.9314,
"walk_factor": 0.928,
"homer_factor": 0.9761,
"regression_flag": "neutral",
"k_percent": 16.5,
"bb_percent": 5.6,
"woba": 0.264,
"xwoba": 0.287,
"barrel_percent": 7.3,
"hard_hit_percent": 36.9,
"whiff_percent": 18.6
},
"espn_rank": {
"rank": 24,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 139.0,
"season_ERA": 3.237,
"season_WHIP": 0.993,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "672456",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 9.0,
"R": 9.0,
"H": 18.0,
"BB": 8.0,
"SO": 13.0,
"HR": 3.0,
"BF": 113.0,
"Pitches": 407.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 3.6,
"BB": 1.6,
"SO": 2.6,
"HR": 0.6,
"BF": 22.6,
"Pitches": 81.4
},
"rates": {
"ERA": 2.8256,
"WHIP": 0.907,
"ER_per_IP": 0.31395,
"H_per_IP": 0.62791,
"BB_per_IP": 0.27907,
"SO_per_IP": 0.45349,
"HR_per_IP": 0.10465
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.1,
"ER": 17.0,
"R": 19.0,
"H": 37.0,
"BB": 11.0,
"SO": 33.0,
"HR": 5.0,
"BF": 191.0,
"Pitches": 701.0
},
"per_game": {
"IP": 4.2,
"ER": 1.7,
"R": 1.9,
"H": 3.7,
"BB": 1.1,
"SO": 3.3,
"HR": 0.5,
"BF": 19.1,
"Pitches": 70.1
},
"rates": {
"ERA": 3.3022,
"WHIP": 1.036,
"ER_per_IP": 0.36691,
"H_per_IP": 0.79856,
"BB_per_IP": 0.23741,
"SO_per_IP": 0.71223,
"HR_per_IP": 0.10791
}
},
"season": {
"games": 28,
"totals": {
"IP": 139.0,
"ER": 50.0,
"R": 54.0,
"H": 107.0,
"BB": 31.0,
"SO": 92.0,
"HR": 14.0,
"BF": 556.0,
"Pitches": 2002.0
},
"per_game": {
"IP": 5.0,
"ER": 1.7857,
"R": 1.9286,
"H": 3.8214,
"BB": 1.1071,
"SO": 3.2857,
"HR": 0.5,
"BF": 19.8571,
"Pitches": 71.5
},
"rates": {
"ERA": 3.2374,
"WHIP": 0.9928,
"ER_per_IP": 0.35971,
"H_per_IP": 0.76978,
"BB_per_IP": 0.22302,
"SO_per_IP": 0.66187,
"HR_per_IP": 0.10072
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.938,
"predicted_H": 4.005,
"predicted_BB": 1.439,
"predicted_SO": 3.392,
"predicted_HR": 0.59,
"predicted_ERA": 3.286,
"predicted_WHIP": 1.0258
}
},
"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": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.938,
"final": 1.9637,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.005,
"final": 4.4169,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.439,
"final": 1.6713,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.392,
"final": 4.8857,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.59,
"final": 0.7597,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.286,
"final": 3.286,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0258,
"final": 1.0258,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 46.1,
"ER": 17,
"H": 37,
"BB": 11,
"SO": 33,
"HR": 5,
"ERA": 3.3021582733812953,
"WHIP": 1.0359712230215827,
"K9": 6.410071942446044,
"HR9": 0.9712230215827339,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.874042386833415,
"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": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.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": "672456",
"player_name": "Keider Montero",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.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": "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": 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": 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.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": {}
},
{
"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": 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": 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": 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.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": 139,
"wins": 64,
"losses": 75,
"win_pct": 0.4604,
"runs_scored": 610.0,
"runs_allowed": 563.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3381,
"avg_runs_scored": 4.3885,
"avg_runs_allowed": 4.0504,
"offense_index": 0.9753,
"defense_index": 1.1109,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 6.0,
"run_differential": -30.0
},
"available": true,
"quality_score": -0.0623
},
"opponent": {
"team": "CLE",
"games": 140,
"wins": 70,
"losses": 70,
"win_pct": 0.5,
"runs_scored": 566.0,
"runs_allowed": 577.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0786,
"avg_runs_scored": 4.0429,
"avg_runs_allowed": 4.1214,
"offense_index": 0.8985,
"defense_index": 1.0917,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.3,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0254
},
"edges": {
"quality_edge": -0.0877,
"offense_edge": -0.0247,
"opponent_offense_edge": -0.1015,
"defense_strength": 0.1109,
"opponent_defense_weakness": -0.0917,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0039,
"run_prevention": 0.9771,
"strikeout": 1.0055
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "672456",
"profile": {
"available": true,
"pitcher_id": "672456",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 528.0,
"k_percent": 16.5,
"bb_percent": 5.6,
"woba": 0.264,
"xwoba": 0.287,
"sweet_spot_percent": 29.2,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 36.9,
"avg_best_speed": 78.0854,
"avg_hyper_speed": 93.6257,
"whiff_percent": 18.6,
"swing_percent": 48.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5533,
"command_and_miss": -0.4971,
"regression_edge": -0.6571,
"xwoba_edge": 0.6857,
"barrel_edge": -0.0222,
"hard_hit_edge": 0.1286,
"whiff_edge": -0.9429,
"bb_edge": 0.9,
"pitch_design_score": 0.0086
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "672456",
"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.022307065353,
"release_spin_rate": 2355.6795124392715,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.022307065353,
"release_spin_rate": 2355.6795124392715,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.0223,
"release_spin_rate": 2355.6795,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0086,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0617,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1155,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 0.9314,
"walk_factor": 0.928,
"homer_factor": 0.9761,
"woba_minus_xwoba": -0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "672456",
"espn_id": 5182933,
"player_name": "Keider Montero",
"team": "DET",
"role": "pitcher",
"espn_rank": 24,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 24,
"gp_value": 28.0,
"gp_rank": 232,
"gs_value": 22.0,
"gs_rank": 82,
"qs_value": 9.0,
"qs_rank": 63,
"era_value": 3.2374,
"era_rank": 20.0,
"w_value": 9.0,
"w_rank": 37,
"l_value": 8.0,
"l_rank": 46,
"sv_value": 1.0,
"sv_rank": 134,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 139.0,
"ip_rank": 51,
"h_value": 107.0,
"h_rank": 98,
"er_value": 50.0,
"er_rank": 98,
"hr_value": 14.0,
"hr_rank": 101,
"bb_value": 31.0,
"bb_rank": 145,
"k_value": 92.0,
"k_rank": 112,
"k_per_9_value": 5.9568343,
"k_per_9_rank": 59,
"whip_value": 0.9928,
"whip_rank": 5.0,
"war_value": 3.31,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9902,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9902,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.928,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9761,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9314,
"adjusted": 3
}
}
}
},
"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": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 109,
"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."
},
{
"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/20260904_DET@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"
}
} |
| 20260904 | 20260904_DET@CLE | home | Logan Allen | Foster Griffin | False | 3.0 | 6.0 | 9 | 0 | 3 | 3 | 2/8 | 2/2 | 3/3 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 3.7674418604651163,
"WHIP": 1.4651162790697674,
"IP": 14.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 3.333,
"recent_avg_IP": 3.333,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.038,
"sample_weight": 0.45,
"run_prevention_factor": 0.9968,
"strikeout_factor": 0.9895,
"walk_factor": 0.9712,
"homer_factor": 1.0408,
"regression_flag": "positive_pitcher_regression",
"k_percent": 22.4,
"bb_percent": 6.0,
"woba": 0.364,
"xwoba": 0.298,
"barrel_percent": 11.1,
"hard_hit_percent": 43.5,
"whiff_percent": 20.6
},
"espn_rank": {
"rank": 569,
"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": 2.88,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3655,
"prior_weight": 0.6345
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "671106",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 10.1,
"ER": 6.0,
"R": 7.0,
"H": 12.0,
"BB": 3.0,
"SO": 8.0,
"HR": 3.0,
"BF": 48.0,
"Pitches": 180.0
},
"per_game": {
"IP": 2.0,
"ER": 1.2,
"R": 1.4,
"H": 2.4,
"BB": 0.6,
"SO": 1.6,
"HR": 0.6,
"BF": 9.6,
"Pitches": 36.0
},
"rates": {
"ERA": 5.2258,
"WHIP": 1.4516,
"ER_per_IP": 0.58065,
"H_per_IP": 1.16129,
"BB_per_IP": 0.29032,
"SO_per_IP": 0.77419,
"HR_per_IP": 0.29032
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 14.1,
"ER": 6.0,
"R": 9.0,
"H": 17.0,
"BB": 4.0,
"SO": 15.0,
"HR": 3.0,
"BF": 67.0,
"Pitches": 263.0
},
"per_game": {
"IP": 2.1,
"ER": 1.0,
"R": 1.5,
"H": 2.8333,
"BB": 0.6667,
"SO": 2.5,
"HR": 0.5,
"BF": 11.1667,
"Pitches": 43.8333
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.4651,
"ER_per_IP": 0.4186,
"H_per_IP": 1.18605,
"BB_per_IP": 0.27907,
"SO_per_IP": 1.04651,
"HR_per_IP": 0.2093
}
},
"season": {
"games": 6,
"totals": {
"IP": 14.1,
"ER": 6.0,
"R": 9.0,
"H": 17.0,
"BB": 4.0,
"SO": 15.0,
"HR": 3.0,
"BF": 67.0,
"Pitches": 263.0
},
"per_game": {
"IP": 2.1,
"ER": 1.0,
"R": 1.5,
"H": 2.8333,
"BB": 0.6667,
"SO": 2.5,
"HR": 0.5,
"BF": 11.1667,
"Pitches": 43.8333
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.4651,
"ER_per_IP": 0.4186,
"H_per_IP": 1.18605,
"BB_per_IP": 0.27907,
"SO_per_IP": 1.04651,
"HR_per_IP": 0.2093
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.926,
"predicted_H": 3.864,
"predicted_BB": 1.264,
"predicted_SO": 3.306,
"predicted_HR": 0.722,
"predicted_ERA": 4.6739,
"predicted_WHIP": 1.3829
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6181,
"form_weight": 0.3819,
"form_reliability": 0.3655,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.88,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3655,
"prior_weight": 0.6345
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.926,
"final": 0.7356,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.864,
"final": 2.7119,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.264,
"final": 1.7189,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.306,
"final": 3.1169,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.722,
"final": 0.2757,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6739,
"final": 4.6739,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3829,
"final": 1.3829,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 14.1,
"ER": 6,
"H": 17,
"BB": 4,
"SO": 15,
"HR": 3,
"ERA": 3.7674418604651163,
"WHIP": 1.4651162790697674,
"K9": 9.41860465116279,
"HR9": 1.8837209302325582,
"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-08-29T00:00:00"
},
"recent_form_boost": 0.970546193164511,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.88,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3655,
"prior_weight": 0.6345
}
},
{
"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": 0,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671106",
"player_name": "Logan Allen",
"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": 0.0,
"predicted_H": 2.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 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": 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": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"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": 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": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_R": 0.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": 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": 3.0,
"after": 3.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": 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": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"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": 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": 140,
"wins": 70,
"losses": 70,
"win_pct": 0.5,
"runs_scored": 566.0,
"runs_allowed": 577.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0786,
"avg_runs_scored": 4.0429,
"avg_runs_allowed": 4.1214,
"offense_index": 0.8985,
"defense_index": 1.0917,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.3,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0254
},
"opponent": {
"team": "DET",
"games": 139,
"wins": 64,
"losses": 75,
"win_pct": 0.4604,
"runs_scored": 610.0,
"runs_allowed": 563.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3381,
"avg_runs_scored": 4.3885,
"avg_runs_allowed": 4.0504,
"offense_index": 0.9753,
"defense_index": 1.1109,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 6.0,
"run_differential": -30.0
},
"available": true,
"quality_score": -0.0623
},
"edges": {
"quality_edge": 0.0877,
"offense_edge": -0.1015,
"opponent_offense_edge": -0.0247,
"defense_strength": 0.0917,
"opponent_defense_weakness": -0.1109,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0072,
"run_prevention": 0.9825,
"strikeout": 1.0046
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671106",
"profile": {
"available": true,
"pitcher_id": "671106",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 42.0,
"k_percent": 22.4,
"bb_percent": 6.0,
"woba": 0.364,
"xwoba": 0.298,
"sweet_spot_percent": 23.9,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 43.5,
"avg_best_speed": 77.4861,
"avg_hyper_speed": 95.4449,
"whiff_percent": 20.6,
"swing_percent": 47.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1386,
"command_and_miss": -0.0379,
"regression_edge": 1.8857,
"xwoba_edge": 0.3714,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.8143,
"whiff_edge": -0.6571,
"bb_edge": 0.8,
"pitch_design_score": -0.2094
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671106",
"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": 86.12961050551412,
"release_spin_rate": 2096.6124427161913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 86.12961050551412,
"release_spin_rate": 2096.6124427161913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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": 2096.6124,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2094,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.4954,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.038,
"sample_weight": 0.45,
"run_prevention_factor": 0.9968,
"strikeout_factor": 0.9895,
"walk_factor": 0.9712,
"homer_factor": 1.0408,
"woba_minus_xwoba": 0.066,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "671106",
"espn_id": 4683350,
"player_name": "Logan Allen",
"team": "CLE",
"role": "pitcher",
"espn_rank": 569,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 569,
"gp_value": 6.0,
"gp_rank": 596,
"gs_value": 1.0,
"gs_rank": 294,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.7674,
"era_rank": null,
"w_value": 0.0,
"w_rank": 524,
"l_value": 0.0,
"l_rank": 570,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 14.1,
"ip_rank": 558,
"h_value": 17.0,
"h_rank": 535,
"er_value": 6.0,
"er_rank": 617,
"hr_value": 3.0,
"hr_rank": 431,
"bb_value": 4.0,
"bb_rank": 639,
"k_value": 15.0,
"k_rank": 522,
"k_per_9_value": 9.418605,
"k_per_9_rank": 25,
"whip_value": 1.4651,
"whip_rank": null,
"war_value": -0.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9986,
"adjusted": 3
},
"predicted_H": {
"original": 8.0,
"factor": 0.9986,
"adjusted": 8
},
"predicted_BB": {
"original": 4.0,
"factor": 0.987,
"adjusted": 4
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0184,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9953,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 13,
"Pitches": 58,
"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 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": "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": "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/20260904_DET@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"
}
} |
| 20260904 | 20260904_LAA@PIT | away | Ryan Johnson | Ryan Johnson | True | 5.0 | 6.0 | 3 | 7 | 1 | -6 | 6/4 | 3/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.474654377880185,
"WHIP": 1.4239631336405532,
"IP": 72.1,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.81,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6031,
"sample_weight": 1.0,
"run_prevention_factor": 1.0513,
"strikeout_factor": 0.9549,
"walk_factor": 1.044,
"homer_factor": 1.1014,
"regression_flag": "neutral",
"k_percent": 16.5,
"bb_percent": 11.4,
"woba": 0.343,
"xwoba": 0.356,
"barrel_percent": 10.7,
"hard_hit_percent": 37.9,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 756,
"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": "696270",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 5.0,
"R": 5.0,
"H": 14.0,
"BB": 16.0,
"SO": 15.0,
"HR": 4.0,
"BF": 105.0,
"Pitches": 423.0
},
"per_game": {
"IP": 5.1,
"ER": 1.0,
"R": 1.0,
"H": 2.8,
"BB": 3.2,
"SO": 3.0,
"HR": 0.8,
"BF": 21.0,
"Pitches": 84.6
},
"rates": {
"ERA": 1.7089,
"WHIP": 1.1392,
"ER_per_IP": 0.18987,
"H_per_IP": 0.53165,
"BB_per_IP": 0.60759,
"SO_per_IP": 0.56962,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 24.0,
"R": 27.0,
"H": 39.0,
"BB": 27.0,
"SO": 34.0,
"HR": 10.0,
"BF": 205.0,
"Pitches": 833.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.7,
"H": 3.9,
"BB": 2.7,
"SO": 3.4,
"HR": 1.0,
"BF": 20.5,
"Pitches": 83.3
},
"rates": {
"ERA": 4.5,
"WHIP": 1.375,
"ER_per_IP": 0.5,
"H_per_IP": 0.8125,
"BB_per_IP": 0.5625,
"SO_per_IP": 0.70833,
"HR_per_IP": 0.20833
}
},
"season": {
"games": 17,
"totals": {
"IP": 72.1,
"ER": 44.0,
"R": 49.0,
"H": 67.0,
"BB": 36.0,
"SO": 52.0,
"HR": 16.0,
"BF": 316.0,
"Pitches": 1263.0
},
"per_game": {
"IP": 4.1,
"ER": 2.5882,
"R": 2.8824,
"H": 3.9412,
"BB": 2.1176,
"SO": 3.0588,
"HR": 0.9412,
"BF": 18.5882,
"Pitches": 74.2941
},
"rates": {
"ERA": 5.4747,
"WHIP": 1.424,
"ER_per_IP": 0.60829,
"H_per_IP": 0.92627,
"BB_per_IP": 0.4977,
"SO_per_IP": 0.71889,
"HR_per_IP": 0.2212
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.009,
"predicted_H": 3.783,
"predicted_BB": 2.583,
"predicted_SO": 3.514,
"predicted_HR": 0.869,
"predicted_ERA": 3.6731,
"predicted_WHIP": 1.2931
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.009,
"final": 3.7891,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.783,
"final": 4.7719,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.583,
"final": 2.769,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.514,
"final": 2.8387,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.869,
"final": 0.4814,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6731,
"final": 3.6731,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2931,
"final": 1.2931,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 24,
"H": 39,
"BB": 27,
"SO": 34,
"HR": 10,
"ERA": 4.5,
"WHIP": 1.375,
"K9": 6.375,
"HR9": 1.875,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 1.0172753005024795,
"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": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 2.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": "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": 3.0,
"predicted_ER": 6.0,
"predicted_H": 6.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": 3.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.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": 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": 6.0,
"delta": 4.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": 2.0,
"after": 6.0,
"delta": 4.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": 3.0,
"after": 3.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": 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": 6.0,
"delta": 4.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": 2.0,
"after": 6.0,
"delta": 4.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": "LAA",
"games": 140,
"wins": 53,
"losses": 87,
"win_pct": 0.3786,
"runs_scored": 571.0,
"runs_allowed": 651.0,
"run_differential": -80.0,
"run_differential_per_game": -0.5714,
"avg_runs_scored": 4.0786,
"avg_runs_allowed": 4.65,
"offense_index": 0.9104,
"defense_index": 0.9635,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.9,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.3133
},
"opponent": {
"team": "PIT",
"games": 141,
"wins": 69,
"losses": 72,
"win_pct": 0.4894,
"runs_scored": 691.0,
"runs_allowed": 662.0,
"run_differential": 29.0,
"run_differential_per_game": 0.2057,
"avg_runs_scored": 4.9007,
"avg_runs_allowed": 4.695,
"offense_index": 1.0939,
"defense_index": 0.9542,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.8,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0512
},
"edges": {
"quality_edge": -0.3645,
"offense_edge": -0.0896,
"opponent_offense_edge": 0.0939,
"defense_strength": -0.0365,
"opponent_defense_weakness": 0.0458,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9806,
"run_prevention": 1.0369,
"strikeout": 0.9816
},
"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": 271.0,
"k_percent": 16.5,
"bb_percent": 11.4,
"woba": 0.343,
"xwoba": 0.356,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 10.7,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.0069,
"avg_hyper_speed": 93.9004,
"whiff_percent": 22.7,
"swing_percent": 45.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.718,
"command_and_miss": -0.5821,
"regression_edge": -0.3714,
"xwoba_edge": -1.2857,
"barrel_edge": -0.7778,
"hard_hit_edge": -0.0143,
"whiff_edge": -0.3571,
"bb_edge": -0.55,
"pitch_design_score": -0.1565
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696270",
"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": 87.07415991966134,
"release_spin_rate": 2270.636552773629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 87.07415991966134,
"release_spin_rate": 2270.636552773629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.0742,
"release_spin_rate": 2270.6366,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1565,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1176,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.6031,
"sample_weight": 1.0,
"run_prevention_factor": 1.0513,
"strikeout_factor": 0.9549,
"walk_factor": 1.044,
"homer_factor": 1.1014,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696270",
"espn_id": 5007859,
"player_name": "Ryan Johnson",
"team": "LAA",
"role": "pitcher",
"espn_rank": 756,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 756,
"gp_value": 17.0,
"gp_rank": 422,
"gs_value": 14.0,
"gs_rank": 141,
"qs_value": 2.0,
"qs_rank": 154,
"era_value": 5.4746,
"era_rank": null,
"w_value": 3.0,
"w_rank": 237,
"l_value": 7.0,
"l_rank": 79,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 72.1,
"ip_rank": 170,
"h_value": 67.0,
"h_rank": 162,
"er_value": 44.0,
"er_rank": 125,
"hr_value": 16.0,
"hr_rank": 77,
"bb_value": 36.0,
"bb_rank": 109,
"k_value": 52.0,
"k_rank": 266,
"k_per_9_value": 6.470046,
"k_per_9_rank": 42,
"whip_value": 1.4239,
"whip_rank": null,
"war_value": -0.45,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0513,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0513,
"adjusted": 3
},
"predicted_BB": {
"original": 3.0,
"factor": 1.044,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1014,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9549,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was -6; this is the primary run-prevention error."
},
{
"code": "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/20260904_LAA@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"
}
} |
| 20260904 | 20260904_LAA@PIT | home | Jared Jones | Jared Jones | True | 5.0 | 6.0 | 3 | 5 | 0 | -5 | 7/3 | 1/1 | 5/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.830275229357798,
"WHIP": 1.2798165137614679,
"IP": 72.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.542,
"recent_avg_IP": 4.133,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2104,
"sample_weight": 1.0,
"run_prevention_factor": 0.9821,
"strikeout_factor": 1.0594,
"walk_factor": 0.99,
"homer_factor": 1.0199,
"regression_flag": "neutral",
"k_percent": 26.6,
"bb_percent": 8.7,
"woba": 0.323,
"xwoba": 0.303,
"barrel_percent": 8.0,
"hard_hit_percent": 40.0,
"whiff_percent": 30.9
},
"espn_rank": {
"rank": 210,
"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": "683003",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 17.0,
"R": 17.0,
"H": 28.0,
"BB": 12.0,
"SO": 25.0,
"HR": 5.0,
"BF": 104.0,
"Pitches": 410.0
},
"per_game": {
"IP": 4.0,
"ER": 3.4,
"R": 3.4,
"H": 5.6,
"BB": 2.4,
"SO": 5.0,
"HR": 1.0,
"BF": 20.8,
"Pitches": 82.0
},
"rates": {
"ERA": 7.4032,
"WHIP": 1.9355,
"ER_per_IP": 0.82258,
"H_per_IP": 1.35484,
"BB_per_IP": 0.58065,
"SO_per_IP": 1.20968,
"HR_per_IP": 0.24194
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 23.0,
"R": 23.0,
"H": 39.0,
"BB": 18.0,
"SO": 58.0,
"HR": 7.0,
"BF": 202.0,
"Pitches": 794.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3,
"R": 2.3,
"H": 3.9,
"BB": 1.8,
"SO": 5.8,
"HR": 0.7,
"BF": 20.2,
"Pitches": 79.4
},
"rates": {
"ERA": 4.3427,
"WHIP": 1.1958,
"ER_per_IP": 0.48252,
"H_per_IP": 0.81818,
"BB_per_IP": 0.37762,
"SO_per_IP": 1.21678,
"HR_per_IP": 0.14685
}
},
"season": {
"games": 16,
"totals": {
"IP": 72.2,
"ER": 39.0,
"R": 40.0,
"H": 66.0,
"BB": 27.0,
"SO": 83.0,
"HR": 12.0,
"BF": 312.0,
"Pitches": 1221.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4375,
"R": 2.5,
"H": 4.125,
"BB": 1.6875,
"SO": 5.1875,
"HR": 0.75,
"BF": 19.5,
"Pitches": 76.3125
},
"rates": {
"ERA": 4.8303,
"WHIP": 1.2798,
"ER_per_IP": 0.5367,
"H_per_IP": 0.90826,
"BB_per_IP": 0.37156,
"SO_per_IP": 1.1422,
"HR_per_IP": 0.16514
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.662,
"predicted_H": 4.587,
"predicted_BB": 1.938,
"predicted_SO": 4.954,
"predicted_HR": 0.793,
"predicted_ERA": 5.4964,
"predicted_WHIP": 1.4971
}
},
"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.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.662,
"final": 3.7155,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.587,
"final": 5.6743,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.938,
"final": 1.5153,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.954,
"final": 4.9747,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.793,
"final": 0.4357,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4964,
"final": 5.4964,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4971,
"final": 1.4971,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 23,
"H": 39,
"BB": 18,
"SO": 58,
"HR": 7,
"ERA": 4.3426573426573425,
"WHIP": 1.1958041958041956,
"K9": 10.95104895104895,
"HR9": 1.3216783216783214,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 0.9950943564465357,
"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": 1.0,
"predicted_SO": 5.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
}
},
{
"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": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"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": 5.0,
"predicted_H": 7.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": "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": 0.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": 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": 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": {}
},
{
"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": 0.0,
"predicted_IP": 5.0,
"predicted_R": 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": 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": 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": 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": 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": "PIT",
"games": 141,
"wins": 69,
"losses": 72,
"win_pct": 0.4894,
"runs_scored": 691.0,
"runs_allowed": 662.0,
"run_differential": 29.0,
"run_differential_per_game": 0.2057,
"avg_runs_scored": 4.9007,
"avg_runs_allowed": 4.695,
"offense_index": 1.0939,
"defense_index": 0.9542,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.8,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0512
},
"opponent": {
"team": "LAA",
"games": 140,
"wins": 53,
"losses": 87,
"win_pct": 0.3786,
"runs_scored": 571.0,
"runs_allowed": 651.0,
"run_differential": -80.0,
"run_differential_per_game": -0.5714,
"avg_runs_scored": 4.0786,
"avg_runs_allowed": 4.65,
"offense_index": 0.9104,
"defense_index": 0.9635,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.9,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.3133
},
"edges": {
"quality_edge": 0.3645,
"offense_edge": 0.0939,
"opponent_offense_edge": -0.0896,
"defense_strength": -0.0458,
"opponent_defense_weakness": 0.0365,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0168,
"run_prevention": 0.972,
"strikeout": 1.0181
},
"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": 268.0,
"k_percent": 26.6,
"bb_percent": 8.7,
"woba": 0.323,
"xwoba": 0.303,
"sweet_spot_percent": 34.0,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 40.0,
"avg_best_speed": 79.5369,
"avg_hyper_speed": 94.4059,
"whiff_percent": 30.9,
"swing_percent": 48.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0409,
"command_and_miss": 0.6121,
"regression_edge": 0.5714,
"xwoba_edge": 0.2286,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.3143,
"whiff_edge": 0.8143,
"bb_edge": 0.125,
"pitch_design_score": 0.2128
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683003",
"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": 93.66750722649874,
"release_spin_rate": 2505.3321423171064,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 93.66750722649874,
"release_spin_rate": 2505.3321423171064,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.6675,
"release_spin_rate": 2505.3321,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2128,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5198,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2104,
"sample_weight": 1.0,
"run_prevention_factor": 0.9821,
"strikeout_factor": 1.0594,
"walk_factor": 0.99,
"homer_factor": 1.0199,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "683003",
"espn_id": 4918156,
"player_name": "Jared Jones",
"team": "PIT",
"role": "pitcher",
"espn_rank": 210,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 210,
"gp_value": 16.0,
"gp_rank": 436,
"gs_value": 16.0,
"gs_rank": 124,
"qs_value": 3.0,
"qs_rank": 136,
"era_value": 4.8302,
"era_rank": null,
"w_value": 2.0,
"w_rank": 303,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 72.2,
"ip_rank": 169,
"h_value": 66.0,
"h_rank": 166,
"er_value": 39.0,
"er_rank": 147,
"hr_value": 12.0,
"hr_rank": 126,
"bb_value": 27.0,
"bb_rank": 187,
"k_value": 83.0,
"k_rank": 138,
"k_per_9_value": 10.279817,
"k_per_9_rank": 22,
"whip_value": 1.2798,
"whip_rank": null,
"war_value": 0.77,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9821,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9821,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.99,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0199,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0594,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"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": "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/20260904_LAA@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"
}
} |
| 20260904 | 20260904_MIL@CIN | away | Shane Drohan | Shane Drohan | True | 5.1 | 4.0 | -4 | 1 | 6 | 5 | 3/5 | 4/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7522658610271904,
"WHIP": 1.29607250755287,
"IP": 110.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.229,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2282,
"sample_weight": 1.0,
"run_prevention_factor": 0.9806,
"strikeout_factor": 1.0211,
"walk_factor": 0.974,
"homer_factor": 0.9985,
"regression_flag": "neutral",
"k_percent": 23.6,
"bb_percent": 7.9,
"woba": 0.314,
"xwoba": 0.294,
"barrel_percent": 8.0,
"hard_hit_percent": 37.6,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 169,
"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": "675660",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 12.0,
"R": 12.0,
"H": 27.0,
"BB": 13.0,
"SO": 21.0,
"HR": 3.0,
"BF": 102.0,
"Pitches": 400.0
},
"per_game": {
"IP": 4.1,
"ER": 2.4,
"R": 2.4,
"H": 5.4,
"BB": 2.6,
"SO": 4.2,
"HR": 0.6,
"BF": 20.4,
"Pitches": 80.0
},
"rates": {
"ERA": 4.8358,
"WHIP": 1.791,
"ER_per_IP": 0.53731,
"H_per_IP": 1.20896,
"BB_per_IP": 0.58209,
"SO_per_IP": 0.9403,
"HR_per_IP": 0.13433
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 26.0,
"R": 28.0,
"H": 53.0,
"BB": 19.0,
"SO": 51.0,
"HR": 5.0,
"BF": 225.0,
"Pitches": 836.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.8,
"H": 5.3,
"BB": 1.9,
"SO": 5.1,
"HR": 0.5,
"BF": 22.5,
"Pitches": 83.6
},
"rates": {
"ERA": 4.443,
"WHIP": 1.3671,
"ER_per_IP": 0.49367,
"H_per_IP": 1.00633,
"BB_per_IP": 0.36076,
"SO_per_IP": 0.96835,
"HR_per_IP": 0.09494
}
},
"season": {
"games": 27,
"totals": {
"IP": 110.1,
"ER": 46.0,
"R": 51.0,
"H": 106.0,
"BB": 37.0,
"SO": 110.0,
"HR": 10.0,
"BF": 466.0,
"Pitches": 1761.0
},
"per_game": {
"IP": 4.0,
"ER": 1.7037,
"R": 1.8889,
"H": 3.9259,
"BB": 1.3704,
"SO": 4.0741,
"HR": 0.3704,
"BF": 17.2593,
"Pitches": 65.2222
},
"rates": {
"ERA": 3.7523,
"WHIP": 1.2961,
"ER_per_IP": 0.41692,
"H_per_IP": 0.96073,
"BB_per_IP": 0.33535,
"SO_per_IP": 0.99698,
"HR_per_IP": 0.09063
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.354,
"predicted_H": 5.06,
"predicted_BB": 2.091,
"predicted_SO": 4.529,
"predicted_HR": 0.554,
"predicted_ERA": 4.4797,
"predicted_WHIP": 1.5122
}
},
"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": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.354,
"final": 1.7907,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.06,
"final": 4.2031,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.091,
"final": 2.8851,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.529,
"final": 5.1409,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.554,
"final": 0.3235,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4797,
"final": 4.4797,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5122,
"final": 1.5122,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 26,
"H": 53,
"BB": 19,
"SO": 51,
"HR": 5,
"ERA": 4.443037974683545,
"WHIP": 1.3670886075949367,
"K9": 8.715189873417723,
"HR9": 0.8544303797468354,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 1.0106692878442518,
"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": 4.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
}
}
],
"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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.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": 4.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": 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.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": 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.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": "MIL",
"games": 141,
"wins": 87,
"losses": 54,
"win_pct": 0.617,
"runs_scored": 705.0,
"runs_allowed": 534.0,
"run_differential": 171.0,
"run_differential_per_game": 1.2128,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7872,
"offense_index": 1.1141,
"defense_index": 1.185,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.5,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.2831
},
"opponent": {
"team": "CIN",
"games": 140,
"wins": 67,
"losses": 73,
"win_pct": 0.4786,
"runs_scored": 581.0,
"runs_allowed": 689.0,
"run_differential": -108.0,
"run_differential_per_game": -0.7714,
"avg_runs_scored": 4.15,
"avg_runs_allowed": 4.9214,
"offense_index": 0.9247,
"defense_index": 0.9119,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 6.3,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.1127
},
"edges": {
"quality_edge": 0.3958,
"offense_edge": 0.1141,
"opponent_offense_edge": -0.0753,
"defense_strength": 0.185,
"opponent_defense_weakness": 0.0881,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0244,
"run_prevention": 0.9497,
"strikeout": 1.0179
},
"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": 417.0,
"k_percent": 23.6,
"bb_percent": 7.9,
"woba": 0.314,
"xwoba": 0.294,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 37.6,
"avg_best_speed": 76.854,
"avg_hyper_speed": 93.7029,
"whiff_percent": 27.2,
"swing_percent": 48.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1734,
"command_and_miss": 0.2743,
"regression_edge": 0.5714,
"xwoba_edge": 0.4857,
"barrel_edge": -0.1778,
"hard_hit_edge": 0.0286,
"whiff_edge": 0.2857,
"bb_edge": 0.325,
"pitch_design_score": 0.0326
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675660",
"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.45103485149461,
"release_spin_rate": 2555.806723547709,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.45103485149461,
"release_spin_rate": 2555.806723547709,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.451,
"release_spin_rate": 2555.8067,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0326,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2332,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2282,
"sample_weight": 1.0,
"run_prevention_factor": 0.9806,
"strikeout_factor": 1.0211,
"walk_factor": 0.974,
"homer_factor": 0.9985,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "675660",
"espn_id": 4315203,
"player_name": "Shane Drohan",
"team": "MIL",
"role": "pitcher",
"espn_rank": 169,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 169,
"gp_value": 27.0,
"gp_rank": 253,
"gs_value": 16.0,
"gs_rank": 124,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 3.7522,
"era_rank": null,
"w_value": 7.0,
"w_rank": 79,
"l_value": 5.0,
"l_rank": 130,
"sv_value": 1.0,
"sv_rank": 134,
"hld_value": 2.0,
"hld_rank": 225,
"ip_value": 110.1,
"ip_rank": 103,
"h_value": 106.0,
"h_rank": 102,
"er_value": 46.0,
"er_rank": 116,
"hr_value": 10.0,
"hr_rank": 151,
"bb_value": 37.0,
"bb_rank": 96,
"k_value": 110.0,
"k_rank": 80,
"k_per_9_value": 8.97281,
"k_per_9_rank": 20,
"whip_value": 1.296,
"whip_rank": null,
"war_value": 1.06,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9806,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9806,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9985,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0211,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 104,
"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 +2."
}
],
"provenance": {
"prediction": "output/games/20260904_MIL@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260904 | 20260904_MIL@CIN | home | Rhett Lowder | Rhett Lowder | True | 5.0 | 4.0 | -3 | 5 | 6 | 1 | 7/6 | 1/4 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.142857142857143,
"WHIP": 1.4553571428571428,
"IP": 112.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5401,
"sample_weight": 1.0,
"run_prevention_factor": 1.0459,
"strikeout_factor": 0.9394,
"walk_factor": 0.988,
"homer_factor": 1.0718,
"regression_flag": "neutral",
"k_percent": 17.6,
"bb_percent": 8.6,
"woba": 0.339,
"xwoba": 0.345,
"barrel_percent": 9.6,
"hard_hit_percent": 37.8,
"whiff_percent": 18.9
},
"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": "695076",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 14.0,
"R": 15.0,
"H": 31.0,
"BB": 6.0,
"SO": 18.0,
"HR": 6.0,
"BF": 123.0,
"Pitches": 476.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 3.0,
"H": 6.2,
"BB": 1.2,
"SO": 3.6,
"HR": 1.2,
"BF": 24.6,
"Pitches": 95.2
},
"rates": {
"ERA": 4.3448,
"WHIP": 1.2759,
"ER_per_IP": 0.48276,
"H_per_IP": 1.06897,
"BB_per_IP": 0.2069,
"SO_per_IP": 0.62069,
"HR_per_IP": 0.2069
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.1,
"ER": 27.0,
"R": 28.0,
"H": 51.0,
"BB": 10.0,
"SO": 32.0,
"HR": 8.0,
"BF": 200.0,
"Pitches": 756.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 2.8,
"H": 5.1,
"BB": 1.0,
"SO": 3.2,
"HR": 0.8,
"BF": 20.0,
"Pitches": 75.6
},
"rates": {
"ERA": 5.2446,
"WHIP": 1.3165,
"ER_per_IP": 0.58273,
"H_per_IP": 1.10072,
"BB_per_IP": 0.21583,
"SO_per_IP": 0.69065,
"HR_per_IP": 0.17266
}
},
"season": {
"games": 24,
"totals": {
"IP": 112.0,
"ER": 64.0,
"R": 66.0,
"H": 120.0,
"BB": 43.0,
"SO": 88.0,
"HR": 16.0,
"BF": 499.0,
"Pitches": 1890.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6667,
"R": 2.75,
"H": 5.0,
"BB": 1.7917,
"SO": 3.6667,
"HR": 0.6667,
"BF": 20.7917,
"Pitches": 78.75
},
"rates": {
"ERA": 5.1429,
"WHIP": 1.4554,
"ER_per_IP": 0.57143,
"H_per_IP": 1.07143,
"BB_per_IP": 0.38393,
"SO_per_IP": 0.78571,
"HR_per_IP": 0.14286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.725,
"predicted_H": 5.472,
"predicted_BB": 1.376,
"predicted_SO": 3.726,
"predicted_HR": 0.906,
"predicted_ERA": 4.759,
"predicted_WHIP": 1.3288
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.725,
"final": 3.687,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.472,
"final": 6.1181,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.376,
"final": 1.217,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.726,
"final": 4.2647,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.906,
"final": 0.5229,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.759,
"final": 4.759,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3288,
"final": 1.3288,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 46.1,
"ER": 27,
"H": 51,
"BB": 10,
"SO": 32,
"HR": 8,
"ERA": 5.244604316546762,
"WHIP": 1.316546762589928,
"K9": 6.215827338129496,
"HR9": 1.553956834532374,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 1.0995819551787385,
"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": 1.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
}
},
{
"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": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"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": 5.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": "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": 0.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": 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": 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": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 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": 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": 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": 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": 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": "CIN",
"games": 140,
"wins": 67,
"losses": 73,
"win_pct": 0.4786,
"runs_scored": 581.0,
"runs_allowed": 689.0,
"run_differential": -108.0,
"run_differential_per_game": -0.7714,
"avg_runs_scored": 4.15,
"avg_runs_allowed": 4.9214,
"offense_index": 0.9247,
"defense_index": 0.9119,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 6.3,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.1127
},
"opponent": {
"team": "MIL",
"games": 141,
"wins": 87,
"losses": 54,
"win_pct": 0.617,
"runs_scored": 705.0,
"runs_allowed": 534.0,
"run_differential": 171.0,
"run_differential_per_game": 1.2128,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7872,
"offense_index": 1.1141,
"defense_index": 1.185,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.5,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.2831
},
"edges": {
"quality_edge": -0.3958,
"offense_edge": -0.0753,
"opponent_offense_edge": 0.1141,
"defense_strength": -0.0881,
"opponent_defense_weakness": -0.185,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.977,
"run_prevention": 1.0469,
"strikeout": 0.979
},
"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": 441.0,
"k_percent": 17.6,
"bb_percent": 8.6,
"woba": 0.339,
"xwoba": 0.345,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 37.8,
"avg_best_speed": 80.0889,
"avg_hyper_speed": 94.2082,
"whiff_percent": 18.9,
"swing_percent": 44.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6677,
"command_and_miss": -0.5614,
"regression_edge": -0.1714,
"xwoba_edge": -0.9714,
"barrel_edge": -0.5333,
"hard_hit_edge": 0.0,
"whiff_edge": -0.9,
"bb_edge": 0.15,
"pitch_design_score": -0.0381
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695076",
"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": 89.18784850252824,
"release_spin_rate": 2345.0409152257157,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 89.18784850252824,
"release_spin_rate": 2345.0409152257157,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.1878,
"release_spin_rate": 2345.0409,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0381,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2721,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.5401,
"sample_weight": 1.0,
"run_prevention_factor": 1.0459,
"strikeout_factor": 0.9394,
"walk_factor": 0.988,
"homer_factor": 1.0718,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695076",
"espn_id": 4758873,
"player_name": "Rhett Lowder",
"team": "CIN",
"role": "pitcher",
"espn_rank": 212,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 212,
"gp_value": 24.0,
"gp_rank": 323,
"gs_value": 21.0,
"gs_rank": 90,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 5.1428,
"era_rank": null,
"w_value": 6.0,
"w_rank": 101,
"l_value": 8.0,
"l_rank": 46,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 112.0,
"ip_rank": 98,
"h_value": 120.0,
"h_rank": 69,
"er_value": 64.0,
"er_rank": 46,
"hr_value": 16.0,
"hr_rank": 77,
"bb_value": 43.0,
"bb_rank": 64,
"k_value": 88.0,
"k_rank": 124,
"k_per_9_value": 7.0714283,
"k_per_9_rank": 34,
"whip_value": 1.4553,
"whip_rank": null,
"war_value": 0.75,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0459,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0459,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.988,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0718,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9394,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260904_MIL@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260904 | 20260904_MIN@CHW | away | Zebby Matthews | Zebby Matthews | True | 6.0 | 5.0 | -3 | 4 | 4 | 0 | 4/4 | 1/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.580357142857143,
"WHIP": 1.2589285714285714,
"IP": 112.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.895,
"recent_avg_IP": 6.2,
"last_start_IP": 8.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.306,
"sample_weight": 1.0,
"run_prevention_factor": 1.026,
"strikeout_factor": 0.9714,
"walk_factor": 0.954,
"homer_factor": 1.0974,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 6.9,
"woba": 0.327,
"xwoba": 0.326,
"barrel_percent": 10.7,
"hard_hit_percent": 41.7,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 140,
"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": "805673",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 10.0,
"R": 13.0,
"H": 29.0,
"BB": 6.0,
"SO": 24.0,
"HR": 3.0,
"BF": 126.0,
"Pitches": 475.0
},
"per_game": {
"IP": 6.1,
"ER": 2.0,
"R": 2.6,
"H": 5.8,
"BB": 1.2,
"SO": 4.8,
"HR": 0.6,
"BF": 25.2,
"Pitches": 95.0
},
"rates": {
"ERA": 2.9032,
"WHIP": 1.129,
"ER_per_IP": 0.32258,
"H_per_IP": 0.93548,
"BB_per_IP": 0.19355,
"SO_per_IP": 0.77419,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 31.0,
"R": 36.0,
"H": 57.0,
"BB": 20.0,
"SO": 47.0,
"HR": 8.0,
"BF": 238.0,
"Pitches": 936.0
},
"per_game": {
"IP": 5.2,
"ER": 3.1,
"R": 3.6,
"H": 5.7,
"BB": 2.0,
"SO": 4.7,
"HR": 0.8,
"BF": 23.8,
"Pitches": 93.6
},
"rates": {
"ERA": 5.012,
"WHIP": 1.3832,
"ER_per_IP": 0.55689,
"H_per_IP": 1.02395,
"BB_per_IP": 0.35928,
"SO_per_IP": 0.84431,
"HR_per_IP": 0.14371
}
},
"season": {
"games": 19,
"totals": {
"IP": 112.0,
"ER": 57.0,
"R": 62.0,
"H": 109.0,
"BB": 32.0,
"SO": 93.0,
"HR": 19.0,
"BF": 467.0,
"Pitches": 1778.0
},
"per_game": {
"IP": 6.0,
"ER": 3.0,
"R": 3.2632,
"H": 5.7368,
"BB": 1.6842,
"SO": 4.8947,
"HR": 1.0,
"BF": 24.5789,
"Pitches": 93.5789
},
"rates": {
"ERA": 4.5804,
"WHIP": 1.2589,
"ER_per_IP": 0.50893,
"H_per_IP": 0.97321,
"BB_per_IP": 0.28571,
"SO_per_IP": 0.83036,
"HR_per_IP": 0.16964
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.731,
"predicted_H": 5.866,
"predicted_BB": 1.754,
"predicted_SO": 5.042,
"predicted_HR": 0.793,
"predicted_ERA": 4.0793,
"predicted_WHIP": 1.2644
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.731,
"final": 3.2868,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.866,
"final": 5.0487,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.754,
"final": 1.4237,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.042,
"final": 5.4616,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.793,
"final": 0.4457,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0793,
"final": 4.0793,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2644,
"final": 1.2644,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 31,
"H": 57,
"BB": 20,
"SO": 47,
"HR": 8,
"ERA": 5.0119760479041915,
"WHIP": 1.3832335329341319,
"K9": 7.598802395209582,
"HR9": 1.2934131736526946,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 1.0750784442150545,
"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": 6.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": "805673",
"player_name": "Zebby Matthews",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 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
},
"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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 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": 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": 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": "MIN",
"games": 140,
"wins": 67,
"losses": 73,
"win_pct": 0.4786,
"runs_scored": 658.0,
"runs_allowed": 696.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2714,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.9714,
"offense_index": 1.051,
"defense_index": 0.8996,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 5.0,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0866
},
"opponent": {
"team": "CHW",
"games": 140,
"wins": 73,
"losses": 67,
"win_pct": 0.5214,
"runs_scored": 662.0,
"runs_allowed": 623.0,
"run_differential": 39.0,
"run_differential_per_game": 0.2786,
"avg_runs_scored": 4.7286,
"avg_runs_allowed": 4.45,
"offense_index": 1.0573,
"defense_index": 1.005,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.8,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0525
},
"edges": {
"quality_edge": -0.1391,
"offense_edge": 0.051,
"opponent_offense_edge": 0.0573,
"defense_strength": -0.1004,
"opponent_defense_weakness": -0.005,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9891,
"run_prevention": 1.0262,
"strikeout": 0.9912
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "805673",
"profile": {
"available": true,
"pitcher_id": "805673",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 409.0,
"k_percent": 19.9,
"bb_percent": 6.9,
"woba": 0.327,
"xwoba": 0.326,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 10.7,
"hard_hit_percent": 41.7,
"avg_best_speed": 80.6955,
"avg_hyper_speed": 94.6991,
"whiff_percent": 22.2,
"swing_percent": 47.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4757,
"command_and_miss": -0.1636,
"regression_edge": 0.0286,
"xwoba_edge": -0.4286,
"barrel_edge": -0.7778,
"hard_hit_edge": -0.5571,
"whiff_edge": -0.4286,
"bb_edge": 0.575,
"pitch_design_score": 0.0009
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "805673",
"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.8834097777443,
"release_spin_rate": 2245.73417209907,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.8834097777443,
"release_spin_rate": 2245.73417209907,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.8834,
"release_spin_rate": 2245.7342,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0009,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0061,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.306,
"sample_weight": 1.0,
"run_prevention_factor": 1.026,
"strikeout_factor": 0.9714,
"walk_factor": 0.954,
"homer_factor": 1.0974,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "805673",
"espn_id": 4791597,
"player_name": "Zebby Matthews",
"team": "MIN",
"role": "pitcher",
"espn_rank": 140,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 140,
"gp_value": 19.0,
"gp_rank": 394,
"gs_value": 19.0,
"gs_rank": 100,
"qs_value": 10.0,
"qs_rank": 54,
"era_value": 4.5803,
"era_rank": null,
"w_value": 9.0,
"w_rank": 37,
"l_value": 8.0,
"l_rank": 46,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 112.0,
"ip_rank": 98,
"h_value": 109.0,
"h_rank": 91,
"er_value": 57.0,
"er_rank": 64,
"hr_value": 19.0,
"hr_rank": 39,
"bb_value": 32.0,
"bb_rank": 134,
"k_value": 93.0,
"k_rank": 108,
"k_per_9_value": 7.473214,
"k_per_9_rank": 29,
"whip_value": 1.2589,
"whip_rank": null,
"war_value": 1.27,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.026,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.026,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.954,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0974,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9714,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"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 +0."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260904_MIN@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"
}
} |
| 20260904 | 20260904_MIN@CHW | home | Erick Fedde | Erick Fedde | True | 4.2 | 5.0 | 1 | 5 | 0 | -5 | 3/3 | 5/2 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.15945945945946,
"WHIP": 1.3702702702702703,
"IP": 123.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.821,
"recent_avg_IP": 4.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3839,
"sample_weight": 1.0,
"run_prevention_factor": 1.0326,
"strikeout_factor": 0.9291,
"walk_factor": 0.986,
"homer_factor": 1.0417,
"regression_flag": "neutral",
"k_percent": 16.5,
"bb_percent": 8.5,
"woba": 0.334,
"xwoba": 0.331,
"barrel_percent": 8.1,
"hard_hit_percent": 39.3,
"whiff_percent": 18.2
},
"espn_rank": {
"rank": 118,
"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": "607200",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.2,
"ER": 6.0,
"R": 6.0,
"H": 14.0,
"BB": 7.0,
"SO": 13.0,
"HR": 1.0,
"BF": 72.0,
"Pitches": 288.0
},
"per_game": {
"IP": 3.2,
"ER": 1.2,
"R": 1.2,
"H": 2.8,
"BB": 1.4,
"SO": 2.6,
"HR": 0.2,
"BF": 14.4,
"Pitches": 57.6
},
"rates": {
"ERA": 3.0566,
"WHIP": 1.1887,
"ER_per_IP": 0.33962,
"H_per_IP": 0.79245,
"BB_per_IP": 0.39623,
"SO_per_IP": 0.73585,
"HR_per_IP": 0.0566
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 34.1,
"ER": 16.0,
"R": 18.0,
"H": 33.0,
"BB": 10.0,
"SO": 28.0,
"HR": 7.0,
"BF": 142.0,
"Pitches": 566.0
},
"per_game": {
"IP": 3.1,
"ER": 1.6,
"R": 1.8,
"H": 3.3,
"BB": 1.0,
"SO": 2.8,
"HR": 0.7,
"BF": 14.2,
"Pitches": 56.6
},
"rates": {
"ERA": 4.1942,
"WHIP": 1.2524,
"ER_per_IP": 0.46602,
"H_per_IP": 0.96117,
"BB_per_IP": 0.29126,
"SO_per_IP": 0.81553,
"HR_per_IP": 0.20388
}
},
"season": {
"games": 29,
"totals": {
"IP": 123.1,
"ER": 57.0,
"R": 65.0,
"H": 124.0,
"BB": 45.0,
"SO": 88.0,
"HR": 22.0,
"BF": 532.0,
"Pitches": 2096.0
},
"per_game": {
"IP": 4.1,
"ER": 1.9655,
"R": 2.2414,
"H": 4.2759,
"BB": 1.5517,
"SO": 3.0345,
"HR": 0.7586,
"BF": 18.3448,
"Pitches": 72.2759
},
"rates": {
"ERA": 4.1595,
"WHIP": 1.3703,
"ER_per_IP": 0.46216,
"H_per_IP": 1.00541,
"BB_per_IP": 0.36486,
"SO_per_IP": 0.71351,
"HR_per_IP": 0.17838
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.613,
"predicted_H": 3.466,
"predicted_BB": 1.362,
"predicted_SO": 3.007,
"predicted_HR": 0.515,
"predicted_ERA": 3.7921,
"predicted_WHIP": 1.2613
}
},
"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": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 1.613,
"final": 3.009,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.466,
"final": 3.2739,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.362,
"final": 2.8614,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.007,
"final": 4.6527,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.515,
"final": 0.7149,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7921,
"final": 3.7921,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2613,
"final": 1.2613,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 16,
"H": 33,
"BB": 10,
"SO": 28,
"HR": 7,
"ERA": 4.194174757281554,
"WHIP": 1.2524271844660195,
"K9": 7.33980582524272,
"HR9": 1.83495145631068,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.9798056403083051,
"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": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 7.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": "607200",
"player_name": "Erick Fedde",
"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": 5.0,
"predicted_ER": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 5.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 5.0,
"predicted_SO": 7.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": 5.0,
"after": 5.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": 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": 5.0,
"after": 5.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": 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": 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": "CHW",
"games": 140,
"wins": 73,
"losses": 67,
"win_pct": 0.5214,
"runs_scored": 662.0,
"runs_allowed": 623.0,
"run_differential": 39.0,
"run_differential_per_game": 0.2786,
"avg_runs_scored": 4.7286,
"avg_runs_allowed": 4.45,
"offense_index": 1.0573,
"defense_index": 1.005,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.8,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0525
},
"opponent": {
"team": "MIN",
"games": 140,
"wins": 67,
"losses": 73,
"win_pct": 0.4786,
"runs_scored": 658.0,
"runs_allowed": 696.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2714,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.9714,
"offense_index": 1.051,
"defense_index": 0.8996,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 5.0,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0866
},
"edges": {
"quality_edge": 0.1391,
"offense_edge": 0.0573,
"opponent_offense_edge": 0.051,
"defense_strength": 0.005,
"opponent_defense_weakness": 0.1004,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0037,
"run_prevention": 1.0007,
"strikeout": 1.0001
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607200",
"profile": {
"available": true,
"pitcher_id": "607200",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 495.0,
"k_percent": 16.5,
"bb_percent": 8.5,
"woba": 0.334,
"xwoba": 0.331,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 39.3,
"avg_best_speed": 77.3852,
"avg_hyper_speed": 93.9498,
"whiff_percent": 18.2,
"swing_percent": 42.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3803,
"command_and_miss": -0.6621,
"regression_edge": 0.0857,
"xwoba_edge": -0.5714,
"barrel_edge": -0.2,
"hard_hit_edge": -0.2143,
"whiff_edge": -1.0,
"bb_edge": 0.175,
"pitch_design_score": -0.092
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607200",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 38,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 38,
"pitch_usage": 0.0,
"release_speed": 88.22606485710746,
"release_spin_rate": 2234.4724631960416,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 38,
"pitch_usage": 0.0,
"release_speed": 88.22606485710746,
"release_spin_rate": 2234.4724631960416,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2261,
"release_spin_rate": 2234.4725,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.092,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6568,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3839,
"sample_weight": 1.0,
"run_prevention_factor": 1.0326,
"strikeout_factor": 0.9291,
"walk_factor": 0.986,
"homer_factor": 1.0417,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607200",
"espn_id": 33793,
"player_name": "Erick Fedde",
"team": "CHW",
"role": "pitcher",
"espn_rank": 118,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 118,
"gp_value": 29.0,
"gp_rank": 217,
"gs_value": 13.0,
"gs_rank": 149,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 4.1594,
"era_rank": null,
"w_value": 7.0,
"w_rank": 79,
"l_value": 8.0,
"l_rank": 46,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 123.1,
"ip_rank": 86,
"h_value": 124.0,
"h_rank": 64,
"er_value": 57.0,
"er_rank": 64,
"hr_value": 22.0,
"hr_rank": 21,
"bb_value": 45.0,
"bb_rank": 53,
"k_value": 88.0,
"k_rank": 124,
"k_per_9_value": 6.4216213,
"k_per_9_rank": 38,
"whip_value": 1.3702,
"whip_rank": null,
"war_value": 1.47,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0326,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0326,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.986,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0417,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9291,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 5,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"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": "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/20260904_MIN@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"
}
} |
| 20260904 | 20260904_NYY@SD | away | Max Fried | Max Fried | True | 5.2 | 5.2 | 0 | 0 | 1 | 1 | 2/4 | 2/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8,
"WHIP": 1.0,
"IP": 90.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.625,
"recent_avg_IP": 4.667,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8477,
"sample_weight": 1.0,
"run_prevention_factor": 0.9279,
"strikeout_factor": 1.008,
"walk_factor": 0.978,
"homer_factor": 0.8065,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 8.1,
"woba": 0.243,
"xwoba": 0.246,
"barrel_percent": 1.7,
"hard_hit_percent": 30.8,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 30,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 90.0,
"season_ERA": 2.8,
"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.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": "608331",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 6.0,
"R": 6.0,
"H": 18.0,
"BB": 8.0,
"SO": 26.0,
"HR": 2.0,
"BF": 91.0,
"Pitches": 385.0
},
"per_game": {
"IP": 4.2,
"ER": 1.2,
"R": 1.2,
"H": 3.6,
"BB": 1.6,
"SO": 5.2,
"HR": 0.4,
"BF": 18.2,
"Pitches": 77.0
},
"rates": {
"ERA": 2.3143,
"WHIP": 1.1143,
"ER_per_IP": 0.25714,
"H_per_IP": 0.77143,
"BB_per_IP": 0.34286,
"SO_per_IP": 1.11429,
"HR_per_IP": 0.08571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 17.0,
"R": 17.0,
"H": 40.0,
"BB": 18.0,
"SO": 51.0,
"HR": 2.0,
"BF": 191.0,
"Pitches": 793.0
},
"per_game": {
"IP": 5.0,
"ER": 1.7,
"R": 1.7,
"H": 4.0,
"BB": 1.8,
"SO": 5.1,
"HR": 0.2,
"BF": 19.1,
"Pitches": 79.3
},
"rates": {
"ERA": 3.1438,
"WHIP": 1.1918,
"ER_per_IP": 0.34932,
"H_per_IP": 0.82192,
"BB_per_IP": 0.36986,
"SO_per_IP": 1.04795,
"HR_per_IP": 0.0411
}
},
"season": {
"games": 16,
"totals": {
"IP": 90.0,
"ER": 28.0,
"R": 28.0,
"H": 62.0,
"BB": 28.0,
"SO": 83.0,
"HR": 3.0,
"BF": 347.0,
"Pitches": 1359.0
},
"per_game": {
"IP": 5.2,
"ER": 1.75,
"R": 1.75,
"H": 3.875,
"BB": 1.75,
"SO": 5.1875,
"HR": 0.1875,
"BF": 21.6875,
"Pitches": 84.9375
},
"rates": {
"ERA": 2.8,
"WHIP": 1.0,
"ER_per_IP": 0.31111,
"H_per_IP": 0.68889,
"BB_per_IP": 0.31111,
"SO_per_IP": 0.92222,
"HR_per_IP": 0.03333
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.813,
"predicted_H": 4.284,
"predicted_BB": 1.839,
"predicted_SO": 5.358,
"predicted_HR": 0.419,
"predicted_ERA": 3.1225,
"predicted_WHIP": 1.1718
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.813,
"final": 0.9961,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.284,
"final": 3.2548,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.839,
"final": 1.9115,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.358,
"final": 5.6473,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.419,
"final": 0.2302,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1225,
"final": 3.1225,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1718,
"final": 1.1718,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 17,
"H": 40,
"BB": 18,
"SO": 51,
"HR": 2,
"ERA": 3.1438356164383565,
"WHIP": 1.1917808219178083,
"K9": 9.431506849315069,
"HR9": 0.36986301369863017,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.86012632789974,
"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": 6.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"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.2,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608331",
"player_name": "Max Fried",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"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": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": {}
},
{
"index": 4,
"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.2,
"predicted_R": 0.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": 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.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"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": 140,
"wins": 80,
"losses": 60,
"win_pct": 0.5714,
"runs_scored": 636.0,
"runs_allowed": 521.0,
"run_differential": 115.0,
"run_differential_per_game": 0.8214,
"avg_runs_scored": 4.5429,
"avg_runs_allowed": 3.7214,
"offense_index": 1.0129,
"defense_index": 1.2052,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.2,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1964
},
"opponent": {
"team": "SD",
"games": 140,
"wins": 73,
"losses": 67,
"win_pct": 0.5214,
"runs_scored": 594.0,
"runs_allowed": 584.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0714,
"avg_runs_scored": 4.2429,
"avg_runs_allowed": 4.1714,
"offense_index": 0.946,
"defense_index": 1.0752,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0431
},
"edges": {
"quality_edge": 0.2395,
"offense_edge": 0.0129,
"opponent_offense_edge": -0.054,
"defense_strength": 0.2052,
"opponent_defense_weakness": -0.0752,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0179,
"run_prevention": 0.9589,
"strikeout": 1.0115
},
"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": 331.0,
"k_percent": 23.9,
"bb_percent": 8.1,
"woba": 0.243,
"xwoba": 0.246,
"sweet_spot_percent": 29.1,
"barrel_batted_rate": 1.7,
"hard_hit_percent": 30.8,
"avg_best_speed": 74.6821,
"avg_hyper_speed": 92.6361,
"whiff_percent": 24.6,
"swing_percent": 45.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4691,
"command_and_miss": 0.1536,
"regression_edge": -0.0857,
"xwoba_edge": 1.8571,
"barrel_edge": 1.2222,
"hard_hit_edge": 1.0,
"whiff_edge": -0.0857,
"bb_edge": 0.275,
"pitch_design_score": -0.0795
},
"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.44857385808628,
"release_spin_rate": 2247.08543068494,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.44857385808628,
"release_spin_rate": 2247.08543068494,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.4486,
"release_spin_rate": 2247.0854,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"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.5678,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.8477,
"sample_weight": 1.0,
"run_prevention_factor": 0.9279,
"strikeout_factor": 1.008,
"walk_factor": 0.978,
"homer_factor": 0.8065,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "608331",
"espn_id": 32685,
"player_name": "Max Fried",
"team": "NYY",
"role": "pitcher",
"espn_rank": 30,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 30,
"gp_value": 16.0,
"gp_rank": 436,
"gs_value": 16.0,
"gs_rank": 124,
"qs_value": 7.0,
"qs_rank": 76,
"era_value": 2.8,
"era_rank": null,
"w_value": 4.0,
"w_rank": 180,
"l_value": 4.0,
"l_rank": 170,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 90.0,
"ip_rank": 138,
"h_value": 62.0,
"h_rank": 180,
"er_value": 28.0,
"er_rank": 198,
"hr_value": 3.0,
"hr_rank": 431,
"bb_value": 28.0,
"bb_rank": 175,
"k_value": 83.0,
"k_rank": 138,
"k_per_9_value": 8.3,
"k_per_9_rank": 27,
"whip_value": 1.0,
"whip_rank": null,
"war_value": 3.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9279,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9279,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.82,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.008,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"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/20260904_NYY@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"
}
} |
| 20260904 | 20260904_NYY@SD | home | Walker Buehler | Walker Buehler | True | 5.1 | 5.0 | -1 | 4 | 1 | -3 | 5/3 | 0/2 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.65989847715736,
"WHIP": 1.3553299492385786,
"IP": 131.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 4.864,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1199,
"sample_weight": 1.0,
"run_prevention_factor": 1.0102,
"strikeout_factor": 0.9577,
"walk_factor": 0.992,
"homer_factor": 1.0218,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 8.8,
"woba": 0.326,
"xwoba": 0.313,
"barrel_percent": 8.2,
"hard_hit_percent": 38.2,
"whiff_percent": 19.8
},
"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": 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": "621111",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 5.0,
"SO": 19.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 417.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.4,
"BB": 1.0,
"SO": 3.8,
"HR": 0.6,
"BF": 20.8,
"Pitches": 83.4
},
"rates": {
"ERA": 2.6667,
"WHIP": 1.0,
"ER_per_IP": 0.2963,
"H_per_IP": 0.81481,
"BB_per_IP": 0.18519,
"SO_per_IP": 0.7037,
"HR_per_IP": 0.11111
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 26.0,
"R": 27.0,
"H": 46.0,
"BB": 19.0,
"SO": 35.0,
"HR": 8.0,
"BF": 208.0,
"Pitches": 836.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.7,
"H": 4.6,
"BB": 1.9,
"SO": 3.5,
"HR": 0.8,
"BF": 20.8,
"Pitches": 83.6
},
"rates": {
"ERA": 4.7432,
"WHIP": 1.3176,
"ER_per_IP": 0.52703,
"H_per_IP": 0.93243,
"BB_per_IP": 0.38514,
"SO_per_IP": 0.70946,
"HR_per_IP": 0.16216
}
},
"season": {
"games": 27,
"totals": {
"IP": 131.1,
"ER": 68.0,
"R": 69.0,
"H": 129.0,
"BB": 49.0,
"SO": 111.0,
"HR": 17.0,
"BF": 559.0,
"Pitches": 2218.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5185,
"R": 2.5556,
"H": 4.7778,
"BB": 1.8148,
"SO": 4.1111,
"HR": 0.6296,
"BF": 20.7037,
"Pitches": 82.1481
},
"rates": {
"ERA": 4.6599,
"WHIP": 1.3553,
"ER_per_IP": 0.51777,
"H_per_IP": 0.98223,
"BB_per_IP": 0.3731,
"SO_per_IP": 0.84518,
"HR_per_IP": 0.12944
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.243,
"predicted_H": 4.672,
"predicted_BB": 1.579,
"predicted_SO": 3.966,
"predicted_HR": 0.698,
"predicted_ERA": 3.8978,
"predicted_WHIP": 1.2072
}
},
"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": 4.0,
"form": 2.243,
"final": 2.9739,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.672,
"final": 4.8084,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.579,
"final": 0.9221,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.966,
"final": 3.9801,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.698,
"final": 1.2396,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8978,
"final": 3.8978,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2072,
"final": 1.2072,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 26,
"H": 46,
"BB": 19,
"SO": 35,
"HR": 8,
"ERA": 4.743243243243244,
"WHIP": 1.3175675675675678,
"K9": 6.385135135135136,
"HR9": 1.4594594594594597,
"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-08-29T00:00:00"
},
"recent_form_boost": 1.0432043545565337,
"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": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 4.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": "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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.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": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.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": 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.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": "SD",
"games": 140,
"wins": 73,
"losses": 67,
"win_pct": 0.5214,
"runs_scored": 594.0,
"runs_allowed": 584.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0714,
"avg_runs_scored": 4.2429,
"avg_runs_allowed": 4.1714,
"offense_index": 0.946,
"defense_index": 1.0752,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0431
},
"opponent": {
"team": "NYY",
"games": 140,
"wins": 80,
"losses": 60,
"win_pct": 0.5714,
"runs_scored": 636.0,
"runs_allowed": 521.0,
"run_differential": 115.0,
"run_differential_per_game": 0.8214,
"avg_runs_scored": 4.5429,
"avg_runs_allowed": 3.7214,
"offense_index": 1.0129,
"defense_index": 1.2052,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.2,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1964
},
"edges": {
"quality_edge": -0.2395,
"offense_edge": -0.054,
"opponent_offense_edge": 0.0129,
"defense_strength": 0.0752,
"opponent_defense_weakness": -0.2052,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9922,
"run_prevention": 1.0065,
"strikeout": 0.9918
},
"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": 514.0,
"k_percent": 19.9,
"bb_percent": 8.8,
"woba": 0.326,
"xwoba": 0.313,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 38.2,
"avg_best_speed": 78.905,
"avg_hyper_speed": 94.0382,
"whiff_percent": 19.8,
"swing_percent": 45.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1032,
"command_and_miss": -0.3786,
"regression_edge": 0.3714,
"xwoba_edge": -0.0571,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.7714,
"bb_edge": 0.1,
"pitch_design_score": -0.0098
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621111",
"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": 89.69389206083017,
"release_spin_rate": 2201.5990522722864,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 89.69389206083017,
"release_spin_rate": 2201.5990522722864,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.6939,
"release_spin_rate": 2201.5991,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0098,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0697,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1199,
"sample_weight": 1.0,
"run_prevention_factor": 1.0102,
"strikeout_factor": 0.9577,
"walk_factor": 0.992,
"homer_factor": 1.0218,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "621111",
"espn_id": 39251,
"player_name": "Walker Buehler",
"team": "SD",
"role": "pitcher",
"espn_rank": 220,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 220,
"gp_value": 27.0,
"gp_rank": 253,
"gs_value": 27.0,
"gs_rank": 21,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 4.6598,
"era_rank": null,
"w_value": 8.0,
"w_rank": 60,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 131.1,
"ip_rank": 68,
"h_value": 129.0,
"h_rank": 50,
"er_value": 68.0,
"er_rank": 30,
"hr_value": 17.0,
"hr_rank": 61,
"bb_value": 49.0,
"bb_rank": 37,
"k_value": 111.0,
"k_rank": 78,
"k_per_9_value": 7.6065993,
"k_per_9_rank": 30,
"whip_value": 1.3553,
"whip_rank": null,
"war_value": 0.69,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0102,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0102,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.992,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0218,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9577,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 86,
"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/20260904_NYY@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"
}
} |
| 20260904 | 20260904_OAK@SEA | away | Kade Morris | Kade Morris | True | 3.0 | 2.2 | -1 | 5 | 5 | 0 | 9/5 | 1/1 | 4/0 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 9.818181818181818,
"WHIP": 2.1136363636363638,
"IP": 14.2,
"games_started": null,
"games_pitched": 5,
"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.14,
"sample_weight": 0.45,
"run_prevention_factor": 1.0119,
"strikeout_factor": 0.9643,
"walk_factor": 0.9892,
"homer_factor": 1.0067,
"regression_flag": "positive_pitcher_regression",
"k_percent": 13.3,
"bb_percent": 8.0,
"woba": 0.448,
"xwoba": 0.327,
"barrel_percent": 5.3,
"hard_hit_percent": 43.9,
"whiff_percent": 19.9
},
"espn_rank": {
"rank": 737,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.947,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3708,
"prior_weight": 0.6292
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695034",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 14.2,
"ER": 16.0,
"R": 16.0,
"H": 25.0,
"BB": 6.0,
"SO": 10.0,
"HR": 4.0,
"BF": 75.0,
"Pitches": 285.0
},
"per_game": {
"IP": 3.0,
"ER": 3.2,
"R": 3.2,
"H": 5.0,
"BB": 1.2,
"SO": 2.0,
"HR": 0.8,
"BF": 15.0,
"Pitches": 57.0
},
"rates": {
"ERA": 9.8182,
"WHIP": 2.1136,
"ER_per_IP": 1.09091,
"H_per_IP": 1.70455,
"BB_per_IP": 0.40909,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 14.2,
"ER": 16.0,
"R": 16.0,
"H": 25.0,
"BB": 6.0,
"SO": 10.0,
"HR": 4.0,
"BF": 75.0,
"Pitches": 285.0
},
"per_game": {
"IP": 3.0,
"ER": 3.2,
"R": 3.2,
"H": 5.0,
"BB": 1.2,
"SO": 2.0,
"HR": 0.8,
"BF": 15.0,
"Pitches": 57.0
},
"rates": {
"ERA": 9.8182,
"WHIP": 2.1136,
"ER_per_IP": 1.09091,
"H_per_IP": 1.70455,
"BB_per_IP": 0.40909,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.27273
}
},
"season": {
"games": 5,
"totals": {
"IP": 14.2,
"ER": 16.0,
"R": 16.0,
"H": 25.0,
"BB": 6.0,
"SO": 10.0,
"HR": 4.0,
"BF": 75.0,
"Pitches": 285.0
},
"per_game": {
"IP": 3.0,
"ER": 3.2,
"R": 3.2,
"H": 5.0,
"BB": 1.2,
"SO": 2.0,
"HR": 0.8,
"BF": 15.0,
"Pitches": 57.0
},
"rates": {
"ERA": 9.8182,
"WHIP": 2.1136,
"ER_per_IP": 1.09091,
"H_per_IP": 1.70455,
"BB_per_IP": 0.40909,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.27273
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.053,
"predicted_H": 5.294,
"predicted_BB": 1.64,
"predicted_SO": 3.59,
"predicted_HR": 0.822,
"predicted_ERA": 6.4525,
"predicted_WHIP": 1.6283
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6158,
"form_weight": 0.3842,
"form_reliability": 0.3708,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.947,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3708,
"prior_weight": 0.6292
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.053,
"final": 4.252,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.294,
"final": 7.5763,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.64,
"final": 1.2459,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.59,
"final": 3.8425,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.822,
"final": 0.9316,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.4525,
"final": 6.4525,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6283,
"final": 1.6283,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"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": 14.2,
"ER": 16,
"H": 25,
"BB": 6,
"SO": 10,
"HR": 4,
"ERA": 9.818181818181818,
"WHIP": 2.1136363636363638,
"K9": 6.136363636363637,
"HR9": 2.4545454545454546,
"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-08-30T00:00:00"
},
"recent_form_boost": 1.3038756079126688,
"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": 9.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.947,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3708,
"prior_weight": 0.6292
}
},
{
"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": 5,
"predicted_H": 9,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695034",
"player_name": "Kade Morris",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 9.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": "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": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 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": 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.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_R": 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": 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": 3.0,
"after": 3.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": 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.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 141,
"wins": 55,
"losses": 86,
"win_pct": 0.3901,
"runs_scored": 618.0,
"runs_allowed": 809.0,
"run_differential": -191.0,
"run_differential_per_game": -1.3546,
"avg_runs_scored": 4.383,
"avg_runs_allowed": 5.7376,
"offense_index": 0.9773,
"defense_index": 0.7817,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.2945
},
"opponent": {
"team": "SEA",
"games": 141,
"wins": 66,
"losses": 75,
"win_pct": 0.4681,
"runs_scored": 559.0,
"runs_allowed": 627.0,
"run_differential": -68.0,
"run_differential_per_game": -0.4823,
"avg_runs_scored": 3.9645,
"avg_runs_allowed": 4.4468,
"offense_index": 0.884,
"defense_index": 1.0086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.3,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.1213
},
"edges": {
"quality_edge": -0.1732,
"offense_edge": -0.0227,
"opponent_offense_edge": -0.116,
"defense_strength": -0.2183,
"opponent_defense_weakness": -0.0086,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9912,
"run_prevention": 1.0119,
"strikeout": 1.0041
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695034",
"profile": {
"available": true,
"pitcher_id": "695034",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 53.0,
"k_percent": 13.3,
"bb_percent": 8.0,
"woba": 0.448,
"xwoba": 0.327,
"sweet_spot_percent": 31.6,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 43.9,
"avg_best_speed": 75.4804,
"avg_hyper_speed": 94.6991,
"whiff_percent": 19.9,
"swing_percent": 49.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5627,
"command_and_miss": -0.7579,
"regression_edge": 2.0,
"xwoba_edge": -0.4571,
"barrel_edge": 0.4222,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.7571,
"bb_edge": 0.3,
"pitch_design_score": 0.0135
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695034",
"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": 90.10917905623789,
"release_spin_rate": 2195.7330137183076,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 90.10917905623789,
"release_spin_rate": 2195.7330137183076,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.1092,
"release_spin_rate": 2195.733,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0135,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0964,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.14,
"sample_weight": 0.45,
"run_prevention_factor": 1.0119,
"strikeout_factor": 0.9643,
"walk_factor": 0.9892,
"homer_factor": 1.0067,
"woba_minus_xwoba": 0.121,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "695034",
"espn_id": 4865840,
"player_name": "Kade Morris",
"team": "ATH",
"role": "pitcher",
"espn_rank": 737,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 737,
"gp_value": 5.0,
"gp_rank": 614,
"gs_value": 1.0,
"gs_rank": 294,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 9.8181,
"era_rank": null,
"w_value": 0.0,
"w_rank": 524,
"l_value": 1.0,
"l_rank": 422,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 14.2,
"ip_rank": 557,
"h_value": 25.0,
"h_rank": 449,
"er_value": 16.0,
"er_rank": 383,
"hr_value": 4.0,
"hr_rank": 363,
"bb_value": 6.0,
"bb_rank": 571,
"k_value": 10.0,
"k_rank": 579,
"k_per_9_value": 6.1363635,
"k_per_9_rank": 28,
"whip_value": 2.1136,
"whip_rank": null,
"war_value": -0.4,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 11.0,
"factor": 1.0054,
"adjusted": 11
},
"predicted_H": {
"original": 11.0,
"factor": 1.0054,
"adjusted": 11
},
"predicted_BB": {
"original": 4.0,
"factor": 0.9951,
"adjusted": 4
},
"predicted_HR": {
"original": 4.0,
"factor": 1.003,
"adjusted": 4
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9839,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 9,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 69,
"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": "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/20260904_OAK@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"
}
} |
| 20260904 | 20260904_OAK@SEA | home | Logan Gilbert | Logan Gilbert | True | 5.2 | 4.2 | -3 | 1 | 7 | 6 | 4/8 | 5/2 | 6/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.424116424116424,
"WHIP": 1.0353430353430353,
"IP": 160.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.938,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2014,
"sample_weight": 1.0,
"run_prevention_factor": 0.9829,
"strikeout_factor": 1.0463,
"walk_factor": 0.942,
"homer_factor": 1.0508,
"regression_flag": "neutral",
"k_percent": 26.0,
"bb_percent": 6.3,
"woba": 0.286,
"xwoba": 0.295,
"barrel_percent": 9.8,
"hard_hit_percent": 41.0,
"whiff_percent": 29.2
},
"espn_rank": {
"rank": 26,
"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": "669302",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 10.0,
"R": 10.0,
"H": 23.0,
"BB": 12.0,
"SO": 27.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 479.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.6,
"BB": 2.4,
"SO": 5.4,
"HR": 1.0,
"BF": 23.2,
"Pitches": 95.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.18072
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 23.0,
"R": 23.0,
"H": 47.0,
"BB": 18.0,
"SO": 59.0,
"HR": 8.0,
"BF": 242.0,
"Pitches": 950.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.3,
"H": 4.7,
"BB": 1.8,
"SO": 5.9,
"HR": 0.8,
"BF": 24.2,
"Pitches": 95.0
},
"rates": {
"ERA": 3.4309,
"WHIP": 1.0773,
"ER_per_IP": 0.38122,
"H_per_IP": 0.77901,
"BB_per_IP": 0.29834,
"SO_per_IP": 0.9779,
"HR_per_IP": 0.1326
}
},
"season": {
"games": 27,
"totals": {
"IP": 160.1,
"ER": 61.0,
"R": 61.0,
"H": 126.0,
"BB": 40.0,
"SO": 166.0,
"HR": 22.0,
"BF": 638.0,
"Pitches": 2546.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2593,
"R": 2.2593,
"H": 4.6667,
"BB": 1.4815,
"SO": 6.1481,
"HR": 0.8148,
"BF": 23.6296,
"Pitches": 94.2963
},
"rates": {
"ERA": 3.4241,
"WHIP": 1.0353,
"ER_per_IP": 0.38046,
"H_per_IP": 0.78586,
"BB_per_IP": 0.24948,
"SO_per_IP": 1.03534,
"HR_per_IP": 0.13721
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.28,
"predicted_H": 4.832,
"predicted_BB": 2.054,
"predicted_SO": 5.708,
"predicted_HR": 0.895,
"predicted_ERA": 3.5244,
"predicted_WHIP": 1.1829
}
},
"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.28,
"final": 1.7475,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.832,
"final": 4.4859,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 2.054,
"final": 3.2795,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.708,
"final": 5.8295,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.895,
"final": 0.5227,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5244,
"final": 3.5244,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1829,
"final": 1.1829,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 23,
"H": 47,
"BB": 18,
"SO": 59,
"HR": 8,
"ERA": 3.430939226519337,
"WHIP": 1.0773480662983426,
"K9": 8.80110497237569,
"HR9": 1.1933701657458564,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.8895646651433636,
"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": 5.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": "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": 4,
"predicted_BB": 5,
"predicted_SO": 6,
"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": 5.0,
"predicted_ER": 1.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": 5.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": 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": 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": 5.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.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": 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.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": 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.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": "SEA",
"games": 141,
"wins": 66,
"losses": 75,
"win_pct": 0.4681,
"runs_scored": 559.0,
"runs_allowed": 627.0,
"run_differential": -68.0,
"run_differential_per_game": -0.4823,
"avg_runs_scored": 3.9645,
"avg_runs_allowed": 4.4468,
"offense_index": 0.884,
"defense_index": 1.0086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.3,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.1213
},
"opponent": {
"team": "OAK",
"games": 141,
"wins": 55,
"losses": 86,
"win_pct": 0.3901,
"runs_scored": 618.0,
"runs_allowed": 809.0,
"run_differential": -191.0,
"run_differential_per_game": -1.3546,
"avg_runs_scored": 4.383,
"avg_runs_allowed": 5.7376,
"offense_index": 0.9773,
"defense_index": 0.7817,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.2945
},
"edges": {
"quality_edge": 0.1732,
"offense_edge": -0.116,
"opponent_offense_edge": -0.0227,
"defense_strength": 0.0086,
"opponent_defense_weakness": 0.2183,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0081,
"run_prevention": 0.9868,
"strikeout": 1.007
},
"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": 590.0,
"k_percent": 26.0,
"bb_percent": 6.3,
"woba": 0.286,
"xwoba": 0.295,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 41.0,
"avg_best_speed": 78.9733,
"avg_hyper_speed": 94.3832,
"whiff_percent": 29.2,
"swing_percent": 50.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1255,
"command_and_miss": 0.6086,
"regression_edge": -0.2571,
"xwoba_edge": 0.4571,
"barrel_edge": -0.5778,
"hard_hit_edge": -0.4571,
"whiff_edge": 0.5714,
"bb_edge": 0.725,
"pitch_design_score": -0.0177
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.55212588420072,
"release_spin_rate": 1933.4323936506946,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.55212588420072,
"release_spin_rate": 1933.4323936506946,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.5521,
"release_spin_rate": 1933.4324,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0177,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1264,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2014,
"sample_weight": 1.0,
"run_prevention_factor": 0.9829,
"strikeout_factor": 1.0463,
"walk_factor": 0.942,
"homer_factor": 1.0508,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669302",
"espn_id": 41221,
"player_name": "Logan Gilbert",
"team": "SEA",
"role": "pitcher",
"espn_rank": 26,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 26,
"gp_value": 27.0,
"gp_rank": 253,
"gs_value": 27.0,
"gs_rank": 21,
"qs_value": 12.0,
"qs_rank": 32,
"era_value": 3.4241,
"era_rank": 22.0,
"w_value": 11.0,
"w_rank": 20,
"l_value": 8.0,
"l_rank": 46,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 160.1,
"ip_rank": 14,
"h_value": 126.0,
"h_rank": 60,
"er_value": 61.0,
"er_rank": 56,
"hr_value": 22.0,
"hr_rank": 21,
"bb_value": 40.0,
"bb_rank": 77,
"k_value": 166.0,
"k_rank": 17,
"k_per_9_value": 9.318087,
"k_per_9_rank": 32,
"whip_value": 1.0353,
"whip_rank": 8.0,
"war_value": 3.26,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9829,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9829,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.942,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0508,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0463,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 5,
"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": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was +6; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +4."
}
],
"provenance": {
"prediction": "output/games/20260904_OAK@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"
}
} |
| 20260904 | 20260904_SF@NYM | away | Matt Wilkinson | Matt Wilkinson | True | 4.0 | 3.0 | -3 | 3 | 4 | 1 | 6/5 | 0/2 | 3/2 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 4.628571428571429,
"WHIP": 1.1142857142857143,
"IP": 11.2,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 3.889,
"recent_avg_IP": 3.889,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1114,
"sample_weight": 0.45,
"run_prevention_factor": 1.0095,
"strikeout_factor": 0.9493,
"walk_factor": 0.9559,
"homer_factor": 1.0089,
"regression_flag": "neutral",
"k_percent": 12.8,
"bb_percent": 4.3,
"woba": 0.294,
"xwoba": 0.305,
"barrel_percent": 5.1,
"hard_hit_percent": 48.7,
"whiff_percent": 14.6
},
"espn_rank": {
"rank": 435,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683363",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 11.2,
"ER": 6.0,
"R": 6.0,
"H": 11.0,
"BB": 2.0,
"SO": 6.0,
"HR": 1.0,
"BF": 47.0,
"Pitches": 181.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 3.6667,
"BB": 0.6667,
"SO": 2.0,
"HR": 0.3333,
"BF": 15.6667,
"Pitches": 60.3333
},
"rates": {
"ERA": 4.6286,
"WHIP": 1.1143,
"ER_per_IP": 0.51429,
"H_per_IP": 0.94286,
"BB_per_IP": 0.17143,
"SO_per_IP": 0.51429,
"HR_per_IP": 0.08571
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 11.2,
"ER": 6.0,
"R": 6.0,
"H": 11.0,
"BB": 2.0,
"SO": 6.0,
"HR": 1.0,
"BF": 47.0,
"Pitches": 181.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 3.6667,
"BB": 0.6667,
"SO": 2.0,
"HR": 0.3333,
"BF": 15.6667,
"Pitches": 60.3333
},
"rates": {
"ERA": 4.6286,
"WHIP": 1.1143,
"ER_per_IP": 0.51429,
"H_per_IP": 0.94286,
"BB_per_IP": 0.17143,
"SO_per_IP": 0.51429,
"HR_per_IP": 0.08571
}
},
"season": {
"games": 3,
"totals": {
"IP": 11.2,
"ER": 6.0,
"R": 6.0,
"H": 11.0,
"BB": 2.0,
"SO": 6.0,
"HR": 1.0,
"BF": 47.0,
"Pitches": 181.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 3.6667,
"BB": 0.6667,
"SO": 2.0,
"HR": 0.3333,
"BF": 15.6667,
"Pitches": 60.3333
},
"rates": {
"ERA": 4.6286,
"WHIP": 1.1143,
"ER_per_IP": 0.51429,
"H_per_IP": 0.94286,
"BB_per_IP": 0.17143,
"SO_per_IP": 0.51429,
"HR_per_IP": 0.08571
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.222,
"predicted_H": 4.243,
"predicted_BB": 1.308,
"predicted_SO": 3.441,
"predicted_HR": 0.545,
"predicted_ERA": 4.5289,
"predicted_WHIP": 1.2568
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6141,
"form_weight": 0.3859,
"form_reliability": 0.375,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.222,
"final": 2.6997,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.243,
"final": 5.3219,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.308,
"final": 0.5048,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.441,
"final": 3.1702,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.545,
"final": 0.8244,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5289,
"final": 4.5289,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2568,
"final": 1.2568,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"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": 11.2,
"ER": 6,
"H": 11,
"BB": 2,
"SO": 6,
"HR": 1,
"ERA": 4.628571428571429,
"WHIP": 1.1142857142857143,
"K9": 4.628571428571429,
"HR9": 0.7714285714285715,
"games_pitched": 3,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"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.009615496020656,
"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": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.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": "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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 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": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"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.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": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"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": 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": 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": 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": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"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.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": 141,
"wins": 58,
"losses": 83,
"win_pct": 0.4113,
"runs_scored": 586.0,
"runs_allowed": 659.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5177,
"avg_runs_scored": 4.156,
"avg_runs_allowed": 4.6738,
"offense_index": 0.9276,
"defense_index": 0.9586,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.6,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.1389
},
"opponent": {
"team": "NYM",
"games": 140,
"wins": 63,
"losses": 77,
"win_pct": 0.45,
"runs_scored": 577.0,
"runs_allowed": 627.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3571,
"avg_runs_scored": 4.1214,
"avg_runs_allowed": 4.4786,
"offense_index": 0.9199,
"defense_index": 1.0004,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1213
},
"edges": {
"quality_edge": -0.0176,
"offense_edge": -0.0724,
"opponent_offense_edge": -0.0801,
"defense_strength": -0.0414,
"opponent_defense_weakness": -0.0004,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0013,
"run_prevention": 0.9922,
"strikeout": 1.0059
},
"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": 7.0,
"k_percent": 12.8,
"bb_percent": 4.3,
"woba": 0.294,
"xwoba": 0.305,
"sweet_spot_percent": 35.9,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 48.7,
"avg_best_speed": 79.1094,
"avg_hyper_speed": 94.4318,
"whiff_percent": 14.6,
"swing_percent": 45.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0346,
"command_and_miss": -0.87,
"regression_edge": -0.3143,
"xwoba_edge": 0.1714,
"barrel_edge": 0.4667,
"hard_hit_edge": -1.5571,
"whiff_edge": -1.5143,
"bb_edge": 1.225,
"pitch_design_score": -0.1167
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683363",
"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": 87.78399999999999,
"release_spin_rate": 2033.08,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 87.78399999999999,
"release_spin_rate": 2033.08,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.784,
"release_spin_rate": 2033.08,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1167,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8336,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1114,
"sample_weight": 0.45,
"run_prevention_factor": 1.0095,
"strikeout_factor": 0.9493,
"walk_factor": 0.9559,
"homer_factor": 1.0089,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "683363",
"espn_id": 5339226,
"player_name": "Matt Wilkinson",
"team": "SF",
"role": "pitcher",
"espn_rank": 435,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 435,
"gp_value": 3.0,
"gp_rank": 698,
"gs_value": 3.0,
"gs_rank": 250,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 4.6285,
"era_rank": null,
"w_value": 0.0,
"w_rank": 524,
"l_value": 2.0,
"l_rank": 319,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 11.2,
"ip_rank": 587,
"h_value": 11.0,
"h_rank": 611,
"er_value": 6.0,
"er_rank": 617,
"hr_value": 1.0,
"hr_rank": 603,
"bb_value": 2.0,
"bb_rank": 706,
"k_value": 6.0,
"k_rank": 643,
"k_per_9_value": 4.6285715,
"k_per_9_rank": 29,
"whip_value": 1.1142,
"whip_rank": null,
"war_value": 0.05,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0043,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0043,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9802,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.004,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9772,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260904_SF@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260904 | 20260904_SF@NYM | home | Nolan McLean | Nolan McLean | True | 6.0 | 6.0 | 0 | 2 | 2 | 0 | 5/6 | 3/4 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.06423982869379,
"WHIP": 1.1241970021413277,
"IP": 155.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.765,
"recent_avg_IP": 6.0,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2981,
"sample_weight": 1.0,
"run_prevention_factor": 0.9747,
"strikeout_factor": 1.0229,
"walk_factor": 1.006,
"homer_factor": 0.956,
"regression_flag": "neutral",
"k_percent": 26.7,
"bb_percent": 9.5,
"woba": 0.282,
"xwoba": 0.293,
"barrel_percent": 6.3,
"hard_hit_percent": 35.6,
"whiff_percent": 24.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": 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": "690997",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 7.0,
"R": 8.0,
"H": 18.0,
"BB": 16.0,
"SO": 24.0,
"HR": 2.0,
"BF": 122.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.6,
"H": 3.6,
"BB": 3.2,
"SO": 4.8,
"HR": 0.4,
"BF": 24.4,
"Pitches": 93.4
},
"rates": {
"ERA": 2.1,
"WHIP": 1.1333,
"ER_per_IP": 0.23333,
"H_per_IP": 0.6,
"BB_per_IP": 0.53333,
"SO_per_IP": 0.8,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 13.0,
"R": 19.0,
"H": 43.0,
"BB": 25.0,
"SO": 59.0,
"HR": 5.0,
"BF": 247.0,
"Pitches": 949.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.9,
"H": 4.3,
"BB": 2.5,
"SO": 5.9,
"HR": 0.5,
"BF": 24.7,
"Pitches": 94.9
},
"rates": {
"ERA": 1.9392,
"WHIP": 1.1271,
"ER_per_IP": 0.21547,
"H_per_IP": 0.71271,
"BB_per_IP": 0.41436,
"SO_per_IP": 0.9779,
"HR_per_IP": 0.08287
}
},
"season": {
"games": 27,
"totals": {
"IP": 155.2,
"ER": 53.0,
"R": 65.0,
"H": 114.0,
"BB": 61.0,
"SO": 172.0,
"HR": 15.0,
"BF": 644.0,
"Pitches": 2544.0
},
"per_game": {
"IP": 5.2,
"ER": 1.963,
"R": 2.4074,
"H": 4.2222,
"BB": 2.2593,
"SO": 6.3704,
"HR": 0.5556,
"BF": 23.8519,
"Pitches": 94.2222
},
"rates": {
"ERA": 3.0642,
"WHIP": 1.1242,
"ER_per_IP": 0.34047,
"H_per_IP": 0.73233,
"BB_per_IP": 0.39186,
"SO_per_IP": 1.10493,
"HR_per_IP": 0.09636
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.707,
"predicted_H": 4.242,
"predicted_BB": 2.668,
"predicted_SO": 5.501,
"predicted_HR": 0.528,
"predicted_ERA": 2.5853,
"predicted_WHIP": 1.1626
}
},
"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": 2.0,
"form": 1.707,
"final": 1.8289,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.242,
"final": 4.5573,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.668,
"final": 2.8061,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.501,
"final": 6.5406,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.528,
"final": 1.1403,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5853,
"final": 2.5853,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1626,
"final": 1.1626,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 13,
"H": 43,
"BB": 25,
"SO": 59,
"HR": 5,
"ERA": 1.9392265193370166,
"WHIP": 1.12707182320442,
"K9": 8.801104972375692,
"HR9": 0.7458563535911603,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.7229900795080045,
"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": 3.0,
"predicted_SO": 8.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
}
},
{
"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": 3,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.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": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"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": 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": 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": 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": 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": 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": 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": "NYM",
"games": 140,
"wins": 63,
"losses": 77,
"win_pct": 0.45,
"runs_scored": 577.0,
"runs_allowed": 627.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3571,
"avg_runs_scored": 4.1214,
"avg_runs_allowed": 4.4786,
"offense_index": 0.9199,
"defense_index": 1.0004,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1213
},
"opponent": {
"team": "SF",
"games": 141,
"wins": 58,
"losses": 83,
"win_pct": 0.4113,
"runs_scored": 586.0,
"runs_allowed": 659.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5177,
"avg_runs_scored": 4.156,
"avg_runs_allowed": 4.6738,
"offense_index": 0.9276,
"defense_index": 0.9586,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.6,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.1389
},
"edges": {
"quality_edge": 0.0176,
"offense_edge": -0.0801,
"opponent_offense_edge": -0.0724,
"defense_strength": 0.0004,
"opponent_defense_weakness": 0.0414,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0036,
"run_prevention": 0.9875,
"strikeout": 1.0063
},
"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": 589.0,
"k_percent": 26.7,
"bb_percent": 9.5,
"woba": 0.282,
"xwoba": 0.293,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 35.6,
"avg_best_speed": 76.466,
"avg_hyper_speed": 93.5873,
"whiff_percent": 24.4,
"swing_percent": 44.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4614,
"command_and_miss": 0.2536,
"regression_edge": -0.3143,
"xwoba_edge": 0.5143,
"barrel_edge": 0.2,
"hard_hit_edge": 0.3143,
"whiff_edge": -0.1143,
"bb_edge": -0.075,
"pitch_design_score": 0.0656
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690997",
"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": 91.0400530003611,
"release_spin_rate": 2502.730639559779,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 91.0400530003611,
"release_spin_rate": 2502.730639559779,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.0401,
"release_spin_rate": 2502.7306,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0656,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4688,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2981,
"sample_weight": 1.0,
"run_prevention_factor": 0.9747,
"strikeout_factor": 1.0229,
"walk_factor": 1.006,
"homer_factor": 0.956,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690997",
"espn_id": 4433874,
"player_name": "Nolan McLean",
"team": "NYM",
"role": "pitcher",
"espn_rank": 44,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 44,
"gp_value": 27.0,
"gp_rank": 253,
"gs_value": 27.0,
"gs_rank": 21,
"qs_value": 17.0,
"qs_rank": 5,
"era_value": 3.0642,
"era_rank": 14.0,
"w_value": 10.0,
"w_rank": 26,
"l_value": 8.0,
"l_rank": 46,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 155.2,
"ip_rank": 19,
"h_value": 114.0,
"h_rank": 82,
"er_value": 53.0,
"er_rank": 82,
"hr_value": 15.0,
"hr_rank": 83,
"bb_value": 61.0,
"bb_rank": 13,
"k_value": 172.0,
"k_rank": 12,
"k_per_9_value": 9.944325,
"k_per_9_rank": 17,
"whip_value": 1.1241,
"whip_rank": 18.0,
"war_value": 2.76,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9747,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9747,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.006,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.956,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0229,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 26,
"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."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260904_SF@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260904 | 20260904_STL@COL | away | Andre Pallante | Andre Pallante | True | 6.0 | 5.0 | -3 | 2 | 1 | -1 | 3/2 | 4/4 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.573529411764706,
"WHIP": 1.2426470588235294,
"IP": 136.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.667,
"recent_avg_IP": 6.133,
"last_start_IP": 6.0,
"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.9514,
"walk_factor": 0.962,
"homer_factor": 0.9422,
"regression_flag": "neutral",
"k_percent": 17.2,
"bb_percent": 7.3,
"woba": 0.298,
"xwoba": 0.305,
"barrel_percent": 5.3,
"hard_hit_percent": 34.5,
"whiff_percent": 21.4
},
"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": 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": "669467",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 7.0,
"R": 7.0,
"H": 26.0,
"BB": 10.0,
"SO": 22.0,
"HR": 0.0,
"BF": 119.0,
"Pitches": 468.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 5.2,
"BB": 2.0,
"SO": 4.4,
"HR": 0.0,
"BF": 23.8,
"Pitches": 93.6
},
"rates": {
"ERA": 2.0543,
"WHIP": 1.1739,
"ER_per_IP": 0.22826,
"H_per_IP": 0.84783,
"BB_per_IP": 0.32609,
"SO_per_IP": 0.71739,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 22.0,
"R": 22.0,
"H": 61.0,
"BB": 16.0,
"SO": 35.0,
"HR": 1.0,
"BF": 242.0,
"Pitches": 938.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.2,
"H": 6.1,
"BB": 1.6,
"SO": 3.5,
"HR": 0.1,
"BF": 24.2,
"Pitches": 93.8
},
"rates": {
"ERA": 3.3371,
"WHIP": 1.2978,
"ER_per_IP": 0.37079,
"H_per_IP": 1.02809,
"BB_per_IP": 0.26966,
"SO_per_IP": 0.58989,
"HR_per_IP": 0.01685
}
},
"season": {
"games": 24,
"totals": {
"IP": 136.0,
"ER": 54.0,
"R": 56.0,
"H": 128.0,
"BB": 41.0,
"SO": 97.0,
"HR": 10.0,
"BF": 564.0,
"Pitches": 2203.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.3333,
"H": 5.3333,
"BB": 1.7083,
"SO": 4.0417,
"HR": 0.4167,
"BF": 23.5,
"Pitches": 91.7917
},
"rates": {
"ERA": 3.5735,
"WHIP": 1.2426,
"ER_per_IP": 0.39706,
"H_per_IP": 0.94118,
"BB_per_IP": 0.30147,
"SO_per_IP": 0.71324,
"HR_per_IP": 0.07353
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.043,
"predicted_H": 5.569,
"predicted_BB": 1.863,
"predicted_SO": 4.267,
"predicted_HR": 0.251,
"predicted_ERA": 3.0936,
"predicted_WHIP": 1.2502
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.043,
"final": 2.0248,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.569,
"final": 4.4827,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.863,
"final": 2.7666,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.267,
"final": 4.5769,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.251,
"final": 0.1449,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0936,
"final": 3.0936,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2502,
"final": 1.2502,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.1,
"ER": 22,
"H": 61,
"BB": 16,
"SO": 35,
"HR": 1,
"ERA": 3.3370786516853936,
"WHIP": 1.2977528089887642,
"K9": 5.308988764044944,
"HR9": 0.15168539325842698,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-17T00:00:00"
},
"recent_form_boost": 0.8845154690418056,
"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": 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": "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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.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": "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": 6.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": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "STL",
"games": 141,
"wins": 70,
"losses": 71,
"win_pct": 0.4965,
"runs_scored": 633.0,
"runs_allowed": 642.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0638,
"avg_runs_scored": 4.4894,
"avg_runs_allowed": 4.5532,
"offense_index": 1.0026,
"defense_index": 0.9834,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 6.1,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0458
},
"opponent": {
"team": "COL",
"games": 140,
"wins": 54,
"losses": 86,
"win_pct": 0.3857,
"runs_scored": 655.0,
"runs_allowed": 795.0,
"run_differential": -140.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.6786,
"avg_runs_allowed": 5.6786,
"offense_index": 1.0449,
"defense_index": 0.7885,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.2,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.255
},
"edges": {
"quality_edge": 0.2092,
"offense_edge": 0.0026,
"opponent_offense_edge": 0.0449,
"defense_strength": -0.0166,
"opponent_defense_weakness": 0.2115,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0061,
"run_prevention": 0.9984,
"strikeout": 1.0027
},
"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": 536.0,
"k_percent": 17.2,
"bb_percent": 7.3,
"woba": 0.298,
"xwoba": 0.305,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 34.5,
"avg_best_speed": 75.8498,
"avg_hyper_speed": 93.6081,
"whiff_percent": 21.4,
"swing_percent": 44.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3322,
"command_and_miss": -0.3971,
"regression_edge": -0.2,
"xwoba_edge": 0.1714,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.4714,
"whiff_edge": -0.5429,
"bb_edge": 0.475,
"pitch_design_score": 0.0008
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669467",
"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.88282303704989,
"release_spin_rate": 2284.4042255985237,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.88282303704989,
"release_spin_rate": 2284.4042255985237,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.8828,
"release_spin_rate": 2284.4042,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0008,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0059,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_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.9514,
"walk_factor": 0.962,
"homer_factor": 0.9422,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669467",
"espn_id": 4109034,
"player_name": "Andre Pallante",
"team": "STL",
"role": "pitcher",
"espn_rank": 59,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 59,
"gp_value": 24.0,
"gp_rank": 323,
"gs_value": 24.0,
"gs_rank": 65,
"qs_value": 9.0,
"qs_rank": 63,
"era_value": 3.5735,
"era_rank": null,
"w_value": 12.0,
"w_rank": 15,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 136.0,
"ip_rank": 58,
"h_value": 128.0,
"h_rank": 55,
"er_value": 54.0,
"er_rank": 80,
"hr_value": 10.0,
"hr_rank": 151,
"bb_value": 41.0,
"bb_rank": 72,
"k_value": 97.0,
"k_rank": 101,
"k_per_9_value": 6.419118,
"k_per_9_rank": 47,
"whip_value": 1.2426,
"whip_rank": null,
"war_value": 2.28,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"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.962,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9422,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9514,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"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 -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/20260904_STL@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"
}
} |
| 20260904 | 20260904_STL@COL | home | Ryan Feltner | Ryan Feltner | True | 4.2 | 5.0 | 1 | 6 | 4 | -2 | 9/7 | 1/3 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.842622950819671,
"WHIP": 1.544262295081967,
"IP": 101.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 4.883,
"recent_avg_IP": 5.4,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5013,
"sample_weight": 1.0,
"run_prevention_factor": 1.0426,
"strikeout_factor": 0.9629,
"walk_factor": 1.014,
"homer_factor": 1.0912,
"regression_flag": "neutral",
"k_percent": 16.7,
"bb_percent": 9.9,
"woba": 0.371,
"xwoba": 0.353,
"barrel_percent": 10.5,
"hard_hit_percent": 37.2,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 260,
"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": "663372",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 17.0,
"R": 20.0,
"H": 30.0,
"BB": 15.0,
"SO": 19.0,
"HR": 2.0,
"BF": 121.0,
"Pitches": 441.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 4.0,
"H": 6.0,
"BB": 3.0,
"SO": 3.8,
"HR": 0.4,
"BF": 24.2,
"Pitches": 88.2
},
"rates": {
"ERA": 6.12,
"WHIP": 1.8,
"ER_per_IP": 0.68,
"H_per_IP": 1.2,
"BB_per_IP": 0.6,
"SO_per_IP": 0.76,
"HR_per_IP": 0.08
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 40.0,
"R": 44.0,
"H": 66.0,
"BB": 25.0,
"SO": 41.0,
"HR": 11.0,
"BF": 235.0,
"Pitches": 861.0
},
"per_game": {
"IP": 5.0,
"ER": 4.0,
"R": 4.4,
"H": 6.6,
"BB": 2.5,
"SO": 4.1,
"HR": 1.1,
"BF": 23.5,
"Pitches": 86.1
},
"rates": {
"ERA": 7.3973,
"WHIP": 1.8699,
"ER_per_IP": 0.82192,
"H_per_IP": 1.35616,
"BB_per_IP": 0.5137,
"SO_per_IP": 0.84247,
"HR_per_IP": 0.22603
}
},
"season": {
"games": 21,
"totals": {
"IP": 101.2,
"ER": 66.0,
"R": 72.0,
"H": 112.0,
"BB": 45.0,
"SO": 76.0,
"HR": 19.0,
"BF": 455.0,
"Pitches": 1685.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1429,
"R": 3.4286,
"H": 5.3333,
"BB": 2.1429,
"SO": 3.619,
"HR": 0.9048,
"BF": 21.6667,
"Pitches": 80.2381
},
"rates": {
"ERA": 5.8426,
"WHIP": 1.5443,
"ER_per_IP": 0.64918,
"H_per_IP": 1.10164,
"BB_per_IP": 0.44262,
"SO_per_IP": 0.74754,
"HR_per_IP": 0.18689
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.443,
"predicted_H": 5.997,
"predicted_BB": 2.563,
"predicted_SO": 4.13,
"predicted_HR": 0.766,
"predicted_ERA": 6.1188,
"predicted_WHIP": 1.6904
}
},
"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": 6.0,
"form": 3.443,
"final": 4.5457,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.997,
"final": 7.292,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.563,
"final": 1.889,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.13,
"final": 3.6427,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.766,
"final": 1.7294,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.1188,
"final": 6.1188,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6904,
"final": 1.6904,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 40,
"H": 66,
"BB": 25,
"SO": 41,
"HR": 11,
"ERA": 7.397260273972603,
"WHIP": 1.8698630136986303,
"K9": 7.582191780821918,
"HR9": 2.0342465753424657,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 1.3555886566668633,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 3.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 6,
"predicted_H": 9,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 3
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663372",
"player_name": "Ryan Feltner",
"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": 9.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": "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": 9.0,
"predicted_HR": 3.0,
"predicted_IP": 4.2,
"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": 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": 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.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"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": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"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": 9.0,
"predicted_HR": 3.0,
"predicted_IP": 4.2,
"predicted_R": 6.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": 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": 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.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": 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": 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": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"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": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"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": 140,
"wins": 54,
"losses": 86,
"win_pct": 0.3857,
"runs_scored": 655.0,
"runs_allowed": 795.0,
"run_differential": -140.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.6786,
"avg_runs_allowed": 5.6786,
"offense_index": 1.0449,
"defense_index": 0.7885,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.2,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.255
},
"opponent": {
"team": "STL",
"games": 141,
"wins": 70,
"losses": 71,
"win_pct": 0.4965,
"runs_scored": 633.0,
"runs_allowed": 642.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0638,
"avg_runs_scored": 4.4894,
"avg_runs_allowed": 4.5532,
"offense_index": 1.0026,
"defense_index": 0.9834,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 6.1,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0458
},
"edges": {
"quality_edge": -0.2092,
"offense_edge": 0.0449,
"opponent_offense_edge": 0.0026,
"defense_strength": -0.2115,
"opponent_defense_weakness": 0.0166,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9852,
"run_prevention": 1.032,
"strikeout": 0.9935
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663372",
"profile": {
"available": true,
"pitcher_id": "663372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 408.0,
"k_percent": 16.7,
"bb_percent": 9.9,
"woba": 0.371,
"xwoba": 0.353,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 37.2,
"avg_best_speed": 75.5104,
"avg_hyper_speed": 93.5483,
"whiff_percent": 23.9,
"swing_percent": 48.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7821,
"command_and_miss": -0.4343,
"regression_edge": 0.5143,
"xwoba_edge": -1.2,
"barrel_edge": -0.7333,
"hard_hit_edge": 0.0857,
"whiff_edge": -0.1857,
"bb_edge": -0.175,
"pitch_design_score": -0.0233
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663372",
"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": 89.45121101288434,
"release_spin_rate": 2332.457513921126,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 89.45121101288434,
"release_spin_rate": 2332.457513921126,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.4512,
"release_spin_rate": 2332.4575,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0233,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1668,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.5013,
"sample_weight": 1.0,
"run_prevention_factor": 1.0426,
"strikeout_factor": 0.9629,
"walk_factor": 1.014,
"homer_factor": 1.0912,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663372",
"espn_id": 4019484,
"player_name": "Ryan Feltner",
"team": "COL",
"role": "pitcher",
"espn_rank": 260,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 260,
"gp_value": 21.0,
"gp_rank": 364,
"gs_value": 20.0,
"gs_rank": 93,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 5.8426,
"era_rank": null,
"w_value": 5.0,
"w_rank": 137,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 101.2,
"ip_rank": 116,
"h_value": 113.0,
"h_rank": 85,
"er_value": 66.0,
"er_rank": 37,
"hr_value": 19.0,
"hr_rank": 39,
"bb_value": 45.0,
"bb_rank": 53,
"k_value": 76.0,
"k_rank": 156,
"k_per_9_value": 6.727869,
"k_per_9_rank": 36,
"whip_value": 1.554,
"whip_rank": null,
"war_value": 0.46,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0426,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0426,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.014,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0912,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9629,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 9,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 24,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260904_STL@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"
}
} |
| 20260904 | 20260904_TB@TEX | away | Nick Martinez | Nick Martinez | True | 6.0 | 6.1 | 1 | 2 | 3 | 1 | 2/5 | 6/2 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9869848156182215,
"WHIP": 1.0997830802603037,
"IP": 153.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.91,
"recent_avg_IP": 6.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1851,
"sample_weight": 1.0,
"run_prevention_factor": 1.0157,
"strikeout_factor": 0.9126,
"walk_factor": 0.888,
"homer_factor": 0.9787,
"regression_flag": "neutral",
"k_percent": 14.7,
"bb_percent": 3.6,
"woba": 0.295,
"xwoba": 0.319,
"barrel_percent": 7.0,
"hard_hit_percent": 33.5,
"whiff_percent": 17.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": 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": "607259",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 13.0,
"R": 13.0,
"H": 31.0,
"BB": 2.0,
"SO": 22.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 425.0
},
"per_game": {
"IP": 6.0,
"ER": 2.6,
"R": 2.6,
"H": 6.2,
"BB": 0.4,
"SO": 4.4,
"HR": 0.6,
"BF": 24.2,
"Pitches": 85.0
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.0879,
"ER_per_IP": 0.42857,
"H_per_IP": 1.02198,
"BB_per_IP": 0.06593,
"SO_per_IP": 0.72527,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 23.0,
"R": 23.0,
"H": 55.0,
"BB": 5.0,
"SO": 33.0,
"HR": 9.0,
"BF": 231.0,
"Pitches": 823.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.3,
"H": 5.5,
"BB": 0.5,
"SO": 3.3,
"HR": 0.9,
"BF": 23.1,
"Pitches": 82.3
},
"rates": {
"ERA": 3.5085,
"WHIP": 1.0169,
"ER_per_IP": 0.38983,
"H_per_IP": 0.9322,
"BB_per_IP": 0.08475,
"SO_per_IP": 0.55932,
"HR_per_IP": 0.15254
}
},
"season": {
"games": 26,
"totals": {
"IP": 153.2,
"ER": 51.0,
"R": 51.0,
"H": 147.0,
"BB": 22.0,
"SO": 91.0,
"HR": 18.0,
"BF": 618.0,
"Pitches": 2150.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9615,
"R": 1.9615,
"H": 5.6538,
"BB": 0.8462,
"SO": 3.5,
"HR": 0.6923,
"BF": 23.7692,
"Pitches": 82.6923
},
"rates": {
"ERA": 2.987,
"WHIP": 1.0998,
"ER_per_IP": 0.33189,
"H_per_IP": 0.95662,
"BB_per_IP": 0.14317,
"SO_per_IP": 0.59219,
"HR_per_IP": 0.11714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.472,
"predicted_H": 5.859,
"predicted_BB": 0.802,
"predicted_SO": 4.131,
"predicted_HR": 0.752,
"predicted_ERA": 3.7075,
"predicted_WHIP": 1.1101
}
},
"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": 1.0,
"form": 2.472,
"final": 1.8565,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.859,
"final": 4.2454,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 6.0,
"form": 0.802,
"final": 2.9755,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.131,
"final": 4.0762,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.752,
"final": 0.8557,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7075,
"final": 3.7075,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1101,
"final": 1.1101,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 23,
"H": 55,
"BB": 5,
"SO": 33,
"HR": 9,
"ERA": 3.5084745762711864,
"WHIP": 1.0169491525423728,
"K9": 5.033898305084746,
"HR9": 1.3728813559322033,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.8967774191465475,
"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": 6.0,
"predicted_SO": 4.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": 6.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 6,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"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": 6.0,
"predicted_ER": 1.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
},
"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": 6.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.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": 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": 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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.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": 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": 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": {}
}
],
"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": 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": 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": "TB",
"games": 140,
"wins": 83,
"losses": 57,
"win_pct": 0.5929,
"runs_scored": 628.0,
"runs_allowed": 583.0,
"run_differential": 45.0,
"run_differential_per_game": 0.3214,
"avg_runs_scored": 4.4857,
"avg_runs_allowed": 4.1643,
"offense_index": 1.003,
"defense_index": 1.0739,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.0,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1535
},
"opponent": {
"team": "TEX",
"games": 141,
"wins": 70,
"losses": 71,
"win_pct": 0.4965,
"runs_scored": 578.0,
"runs_allowed": 620.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2979,
"avg_runs_scored": 4.0993,
"avg_runs_allowed": 4.3972,
"offense_index": 0.9166,
"defense_index": 1.017,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 5.3,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0396
},
"edges": {
"quality_edge": 0.1931,
"offense_edge": 0.003,
"opponent_offense_edge": -0.0834,
"defense_strength": 0.0739,
"opponent_defense_weakness": -0.017,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0133,
"run_prevention": 0.9696,
"strikeout": 1.0125
},
"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": 572.0,
"k_percent": 14.7,
"bb_percent": 3.6,
"woba": 0.295,
"xwoba": 0.319,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 33.5,
"avg_best_speed": 75.7111,
"avg_hyper_speed": 93.2768,
"whiff_percent": 17.1,
"swing_percent": 50.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0885,
"command_and_miss": -0.5879,
"regression_edge": -0.6857,
"xwoba_edge": -0.2286,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.6143,
"whiff_edge": -1.1571,
"bb_edge": 1.4,
"pitch_design_score": -0.165
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607259",
"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": 86.92210877528385,
"release_spin_rate": 2192.935261117394,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 86.92210877528385,
"release_spin_rate": 2192.935261117394,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.9221,
"release_spin_rate": 2192.9353,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.165,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1784,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_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": 1.0,
"run_prevention_factor": 1.0157,
"strikeout_factor": 0.9126,
"walk_factor": 0.888,
"homer_factor": 0.9787,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607259",
"espn_id": 33372,
"player_name": "Nick Martinez",
"team": "TB",
"role": "pitcher",
"espn_rank": 17,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 17,
"gp_value": 26.0,
"gp_rank": 282,
"gs_value": 26.0,
"gs_rank": 36,
"qs_value": 13.0,
"qs_rank": 25,
"era_value": 2.9869,
"era_rank": 12.0,
"w_value": 13.0,
"w_rank": 9,
"l_value": 4.0,
"l_rank": 170,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 153.2,
"ip_rank": 27,
"h_value": 147.0,
"h_rank": 17,
"er_value": 51.0,
"er_rank": 95,
"hr_value": 18.0,
"hr_rank": 48,
"bb_value": 22.0,
"bb_rank": 245,
"k_value": 91.0,
"k_rank": 113,
"k_per_9_value": 5.329718,
"k_per_9_rank": 113,
"whip_value": 1.0997,
"whip_rank": 14.0,
"war_value": 3.58,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0157,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0157,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.888,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9787,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9126,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 6,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 29,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260904_TB@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"
}
} |
| 20260904 | 20260904_TB@TEX | home | Trevor Williams | Trevor Williams | True | 4.2 | 1.0 | -11 | 1 | 0 | -1 | 4/0 | 1/0 | 6/2 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 3.9272727272727277,
"WHIP": 1.4181818181818182,
"IP": 18.1,
"games_started": null,
"games_pitched": 9,
"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.0602,
"sample_weight": 0.45,
"run_prevention_factor": 0.9949,
"strikeout_factor": 1.0177,
"walk_factor": 0.9946,
"homer_factor": 0.9945,
"regression_flag": "positive_pitcher_regression",
"k_percent": 28.4,
"bb_percent": 8.6,
"woba": 0.344,
"xwoba": 0.31,
"barrel_percent": 8.2,
"hard_hit_percent": 32.7,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 320,
"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.684,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4242,
"prior_weight": 0.5758
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592866",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 12.1,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 5.0,
"SO": 14.0,
"HR": 3.0,
"BF": 55.0,
"Pitches": 240.0
},
"per_game": {
"IP": 2.1,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 1.0,
"SO": 2.8,
"HR": 0.6,
"BF": 11.0,
"Pitches": 48.0
},
"rates": {
"ERA": 5.8378,
"WHIP": 1.5405,
"ER_per_IP": 0.64865,
"H_per_IP": 1.13514,
"BB_per_IP": 0.40541,
"SO_per_IP": 1.13514,
"HR_per_IP": 0.24324
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 18.1,
"ER": 8.0,
"R": 8.0,
"H": 19.0,
"BB": 7.0,
"SO": 23.0,
"HR": 3.0,
"BF": 81.0,
"Pitches": 354.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8889,
"R": 0.8889,
"H": 2.1111,
"BB": 0.7778,
"SO": 2.5556,
"HR": 0.3333,
"BF": 9.0,
"Pitches": 39.3333
},
"rates": {
"ERA": 3.9273,
"WHIP": 1.4182,
"ER_per_IP": 0.43636,
"H_per_IP": 1.03636,
"BB_per_IP": 0.38182,
"SO_per_IP": 1.25455,
"HR_per_IP": 0.16364
}
},
"season": {
"games": 9,
"totals": {
"IP": 18.1,
"ER": 8.0,
"R": 8.0,
"H": 19.0,
"BB": 7.0,
"SO": 23.0,
"HR": 3.0,
"BF": 81.0,
"Pitches": 354.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8889,
"R": 0.8889,
"H": 2.1111,
"BB": 0.7778,
"SO": 2.5556,
"HR": 0.3333,
"BF": 9.0,
"Pitches": 39.3333
},
"rates": {
"ERA": 3.9273,
"WHIP": 1.4182,
"ER_per_IP": 0.43636,
"H_per_IP": 1.03636,
"BB_per_IP": 0.38182,
"SO_per_IP": 1.25455,
"HR_per_IP": 0.16364
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.907,
"predicted_H": 3.712,
"predicted_BB": 1.383,
"predicted_SO": 3.771,
"predicted_HR": 0.631,
"predicted_ERA": 4.7388,
"predicted_WHIP": 1.4065
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5933,
"form_weight": 0.4067,
"form_reliability": 0.4242,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.684,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4242,
"prior_weight": 0.5758
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.907,
"final": 1.3689,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.712,
"final": 3.8829,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.383,
"final": 1.1558,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.771,
"final": 5.0934,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.631,
"final": 0.2566,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7388,
"final": 4.7388,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4065,
"final": 1.4065,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 8,
"H": 19,
"BB": 7,
"SO": 23,
"HR": 3,
"ERA": 3.9272727272727277,
"WHIP": 1.4181818181818182,
"K9": 11.290909090909091,
"HR9": 1.4727272727272729,
"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-01T00:00:00"
},
"recent_form_boost": 0.9723957841527165,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.684,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4242,
"prior_weight": 0.5758
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592866",
"player_name": "Trevor Williams",
"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": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 4.0,
"predicted_HR": 0.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": {}
},
{
"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": 4.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": 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": 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": 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": 141,
"wins": 70,
"losses": 71,
"win_pct": 0.4965,
"runs_scored": 578.0,
"runs_allowed": 620.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2979,
"avg_runs_scored": 4.0993,
"avg_runs_allowed": 4.3972,
"offense_index": 0.9166,
"defense_index": 1.017,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 5.3,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0396
},
"opponent": {
"team": "TB",
"games": 140,
"wins": 83,
"losses": 57,
"win_pct": 0.5929,
"runs_scored": 628.0,
"runs_allowed": 583.0,
"run_differential": 45.0,
"run_differential_per_game": 0.3214,
"avg_runs_scored": 4.4857,
"avg_runs_allowed": 4.1643,
"offense_index": 1.003,
"defense_index": 1.0739,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.0,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1535
},
"edges": {
"quality_edge": -0.1931,
"offense_edge": -0.0834,
"opponent_offense_edge": 0.003,
"defense_strength": 0.017,
"opponent_defense_weakness": -0.0739,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9927,
"run_prevention": 1.0084,
"strikeout": 0.994
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592866",
"profile": {
"available": true,
"pitcher_id": "592866",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 59.0,
"k_percent": 28.4,
"bb_percent": 8.6,
"woba": 0.344,
"xwoba": 0.31,
"sweet_spot_percent": 40.8,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 32.7,
"avg_best_speed": 75.2973,
"avg_hyper_speed": 93.2206,
"whiff_percent": 25.6,
"swing_percent": 48.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1153,
"command_and_miss": 0.4679,
"regression_edge": 0.9714,
"xwoba_edge": 0.0286,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.7286,
"whiff_edge": 0.0571,
"bb_edge": 0.15,
"pitch_design_score": -0.2564
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592866",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 41,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 41,
"pitch_usage": 0.0,
"release_speed": 85.28877951180472,
"release_spin_rate": 2135.941730025344,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 41,
"pitch_usage": 0.0,
"release_speed": 85.28877951180472,
"release_spin_rate": 2135.941730025344,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2888,
"release_spin_rate": 2135.9417,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2564,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8317,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0602,
"sample_weight": 0.45,
"run_prevention_factor": 0.9949,
"strikeout_factor": 1.0177,
"walk_factor": 0.9946,
"homer_factor": 0.9945,
"woba_minus_xwoba": 0.034,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "592866",
"espn_id": 33305,
"player_name": "Trevor Williams",
"team": "TEX",
"role": "pitcher",
"espn_rank": 320,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 320,
"gp_value": 9.0,
"gp_rank": 532,
"gs_value": 0.0,
"gs_rank": 357,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.9272,
"era_rank": null,
"w_value": 0.0,
"w_rank": 524,
"l_value": 0.0,
"l_rank": 570,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 1.0,
"hld_rank": 265,
"ip_value": 18.1,
"ip_rank": 522,
"h_value": 19.0,
"h_rank": 508,
"er_value": 8.0,
"er_rank": 571,
"hr_value": 3.0,
"hr_rank": 431,
"bb_value": 7.0,
"bb_rank": 543,
"k_value": 23.0,
"k_rank": 452,
"k_per_9_value": 11.290909,
"k_per_9_rank": 23,
"whip_value": 1.4181,
"whip_rank": null,
"war_value": 0.25,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9977,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9977,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9976,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9975,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.008,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 87,
"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 -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 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260904_TB@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"
}
} |
| 20260904 | 20260904_TOR@KC | away | Jameson Taillon | Jameson Taillon | True | 4.2 | 2.0 | -8 | 4 | 1 | -3 | 4/2 | 0/0 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.678571428571429,
"WHIP": 1.369047619047619,
"IP": 84.0,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.941,
"recent_avg_IP": 3.467,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6322,
"sample_weight": 1.0,
"run_prevention_factor": 1.0537,
"strikeout_factor": 1.0023,
"walk_factor": 0.992,
"homer_factor": 1.1813,
"regression_flag": "neutral",
"k_percent": 20.7,
"bb_percent": 8.8,
"woba": 0.364,
"xwoba": 0.363,
"barrel_percent": 14.6,
"hard_hit_percent": 38.7,
"whiff_percent": 26.8
},
"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": "592791",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.1,
"ER": 15.0,
"R": 15.0,
"H": 20.0,
"BB": 11.0,
"SO": 18.0,
"HR": 6.0,
"BF": 82.0,
"Pitches": 320.0
},
"per_game": {
"IP": 3.1,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 2.2,
"SO": 3.6,
"HR": 1.2,
"BF": 16.4,
"Pitches": 64.0
},
"rates": {
"ERA": 7.7885,
"WHIP": 1.7885,
"ER_per_IP": 0.86538,
"H_per_IP": 1.15385,
"BB_per_IP": 0.63462,
"SO_per_IP": 1.03846,
"HR_per_IP": 0.34615
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 34.0,
"R": 34.0,
"H": 51.0,
"BB": 18.0,
"SO": 39.0,
"HR": 15.0,
"BF": 198.0,
"Pitches": 764.0
},
"per_game": {
"IP": 4.1,
"ER": 3.4,
"R": 3.4,
"H": 5.1,
"BB": 1.8,
"SO": 3.9,
"HR": 1.5,
"BF": 19.8,
"Pitches": 76.4
},
"rates": {
"ERA": 7.0076,
"WHIP": 1.5802,
"ER_per_IP": 0.77863,
"H_per_IP": 1.16794,
"BB_per_IP": 0.41221,
"SO_per_IP": 0.89313,
"HR_per_IP": 0.34351
}
},
"season": {
"games": 17,
"totals": {
"IP": 84.0,
"ER": 53.0,
"R": 54.0,
"H": 83.0,
"BB": 32.0,
"SO": 75.0,
"HR": 26.0,
"BF": 362.0,
"Pitches": 1414.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1176,
"R": 3.1765,
"H": 4.8824,
"BB": 1.8824,
"SO": 4.4118,
"HR": 1.5294,
"BF": 21.2941,
"Pitches": 83.1765
},
"rates": {
"ERA": 5.6786,
"WHIP": 1.369,
"ER_per_IP": 0.63095,
"H_per_IP": 0.9881,
"BB_per_IP": 0.38095,
"SO_per_IP": 0.89286,
"HR_per_IP": 0.30952
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 3.006,
"predicted_H": 4.542,
"predicted_BB": 1.979,
"predicted_SO": 3.972,
"predicted_HR": 1.225,
"predicted_ERA": 6.4967,
"predicted_WHIP": 1.5659
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.006,
"final": 3.4494,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.542,
"final": 4.3002,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.979,
"final": 1.0963,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.972,
"final": 3.5385,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.225,
"final": 0.6786,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.4967,
"final": 6.4967,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5659,
"final": 1.5659,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 34,
"H": 51,
"BB": 18,
"SO": 39,
"HR": 15,
"ERA": 7.00763358778626,
"WHIP": 1.5801526717557253,
"K9": 8.038167938931299,
"HR9": 3.0916030534351147,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-10T00:00:00"
},
"recent_form_boost": 1.3045128959223269,
"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": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 3.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": "592791",
"player_name": "Jameson Taillon",
"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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 4.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": 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.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": 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.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": "TOR",
"games": 141,
"wins": 70,
"losses": 71,
"win_pct": 0.4965,
"runs_scored": 566.0,
"runs_allowed": 607.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2908,
"avg_runs_scored": 4.0142,
"avg_runs_allowed": 4.305,
"offense_index": 0.8976,
"defense_index": 1.0388,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.9,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0037
},
"opponent": {
"team": "KC",
"games": 141,
"wins": 63,
"losses": 78,
"win_pct": 0.4468,
"runs_scored": 606.0,
"runs_allowed": 691.0,
"run_differential": -85.0,
"run_differential_per_game": -0.6028,
"avg_runs_scored": 4.2979,
"avg_runs_allowed": 4.9007,
"offense_index": 0.961,
"defense_index": 0.9125,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.7,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0844
},
"edges": {
"quality_edge": 0.0807,
"offense_edge": -0.1024,
"opponent_offense_edge": -0.039,
"defense_strength": 0.0388,
"opponent_defense_weakness": 0.0875,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.006,
"run_prevention": 0.9858,
"strikeout": 1.0055
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592791",
"profile": {
"available": true,
"pitcher_id": "592791",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 345.0,
"k_percent": 20.7,
"bb_percent": 8.8,
"woba": 0.364,
"xwoba": 0.363,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 14.6,
"hard_hit_percent": 38.7,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 94.2675,
"whiff_percent": 26.8,
"swing_percent": 46.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.116,
"command_and_miss": 0.0229,
"regression_edge": 0.0286,
"xwoba_edge": -1.4857,
"barrel_edge": -1.6444,
"hard_hit_edge": -0.1286,
"whiff_edge": 0.2286,
"bb_edge": 0.1,
"pitch_design_score": -0.2006
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592791",
"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": 86.28623617545512,
"release_spin_rate": 2377.6652705289603,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 86.28623617545512,
"release_spin_rate": 2377.6652705289603,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2862,
"release_spin_rate": 2377.6653,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2006,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.4327,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.6322,
"sample_weight": 1.0,
"run_prevention_factor": 1.0537,
"strikeout_factor": 1.0023,
"walk_factor": 0.992,
"homer_factor": 1.1813,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592791",
"espn_id": 31258,
"player_name": "Jameson Taillon",
"team": "TOR",
"role": "pitcher",
"espn_rank": 806,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 806,
"gp_value": 17.0,
"gp_rank": 422,
"gs_value": 17.0,
"gs_rank": 117,
"qs_value": 4.0,
"qs_rank": 121,
"era_value": 5.6785,
"era_rank": null,
"w_value": 2.0,
"w_rank": 303,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 84.0,
"ip_rank": 148,
"h_value": 83.0,
"h_rank": 135,
"er_value": 53.0,
"er_rank": 82,
"hr_value": 26.0,
"hr_rank": 8,
"bb_value": 32.0,
"bb_rank": 134,
"k_value": 75.0,
"k_rank": 157,
"k_per_9_value": 8.035714,
"k_per_9_rank": 28,
"whip_value": 1.369,
"whip_rank": null,
"war_value": -0.75,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0537,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0537,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.992,
"adjusted": 2
},
"predicted_HR": {
"original": 2.0,
"factor": 1.1813,
"adjusted": 2
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0023,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 83,
"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."
}
],
"provenance": {
"prediction": "output/games/20260904_TOR@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"
}
} |
| 20260904 | 20260904_TOR@KC | home | Daniel Lynch IV | Daniel Lynch IV | True | 5.0 | 5.0 | 0 | 1 | 5 | 4 | 4/7 | 1/1 | 8/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.064864864864865,
"WHIP": 1.0540540540540542,
"IP": 61.2,
"games_started": null,
"games_pitched": 51,
"role_avg_IP": 3.133,
"recent_avg_IP": 3.133,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0022,
"sample_weight": 0.844,
"run_prevention_factor": 1.0002,
"strikeout_factor": 0.9826,
"walk_factor": 0.973,
"homer_factor": 0.9891,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.4,
"bb_percent": 7.6,
"woba": 0.268,
"xwoba": 0.309,
"barrel_percent": 6.6,
"hard_hit_percent": 37.7,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 183,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 61.2,
"season_ERA": 3.065,
"season_WHIP": 1.054,
"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.39,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7125,
"prior_weight": 0.2875
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663738",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 51,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 15.2,
"ER": 11.0,
"R": 12.0,
"H": 15.0,
"BB": 7.0,
"SO": 11.0,
"HR": 3.0,
"BF": 67.0,
"Pitches": 248.0
},
"per_game": {
"IP": 3.0,
"ER": 2.2,
"R": 2.4,
"H": 3.0,
"BB": 1.4,
"SO": 2.2,
"HR": 0.6,
"BF": 13.4,
"Pitches": 49.6
},
"rates": {
"ERA": 6.3191,
"WHIP": 1.4043,
"ER_per_IP": 0.70213,
"H_per_IP": 0.95745,
"BB_per_IP": 0.44681,
"SO_per_IP": 0.70213,
"HR_per_IP": 0.19149
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 20.1,
"ER": 11.0,
"R": 12.0,
"H": 19.0,
"BB": 7.0,
"SO": 12.0,
"HR": 3.0,
"BF": 85.0,
"Pitches": 302.0
},
"per_game": {
"IP": 2.0,
"ER": 1.1,
"R": 1.2,
"H": 1.9,
"BB": 0.7,
"SO": 1.2,
"HR": 0.3,
"BF": 8.5,
"Pitches": 30.2
},
"rates": {
"ERA": 4.8689,
"WHIP": 1.2787,
"ER_per_IP": 0.54098,
"H_per_IP": 0.93443,
"BB_per_IP": 0.34426,
"SO_per_IP": 0.59016,
"HR_per_IP": 0.14754
}
},
"season": {
"games": 51,
"totals": {
"IP": 61.2,
"ER": 21.0,
"R": 25.0,
"H": 46.0,
"BB": 19.0,
"SO": 46.0,
"HR": 5.0,
"BF": 250.0,
"Pitches": 923.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4118,
"R": 0.4902,
"H": 0.902,
"BB": 0.3725,
"SO": 0.902,
"HR": 0.098,
"BF": 4.902,
"Pitches": 18.098
},
"rates": {
"ERA": 3.0649,
"WHIP": 1.0541,
"ER_per_IP": 0.34054,
"H_per_IP": 0.74595,
"BB_per_IP": 0.30811,
"SO_per_IP": 0.74595,
"HR_per_IP": 0.08108
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.808,
"predicted_H": 3.036,
"predicted_BB": 1.245,
"predicted_SO": 2.454,
"predicted_HR": 0.498,
"predicted_ERA": 4.9618,
"predicted_WHIP": 1.3052
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4715,
"form_weight": 0.5285,
"form_reliability": 0.7125,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.39,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7125,
"prior_weight": 0.2875
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 3.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.808,
"final": 1.4271,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.036,
"final": 3.4905,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.245,
"final": 1.1295,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 2.454,
"final": 5.0688,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.498,
"final": 0.2632,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9618,
"final": 4.9618,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3052,
"final": 1.3052,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 20.1,
"ER": 11,
"H": 19,
"BB": 7,
"SO": 12,
"HR": 3,
"ERA": 4.868852459016393,
"WHIP": 1.2786885245901638,
"K9": 5.311475409836065,
"HR9": 1.3278688524590163,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 1.037450354023646,
"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": 12.39,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7125,
"prior_weight": 0.2875
}
},
{
"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": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"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": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"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": 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": "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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 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": 4,
"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.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": 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": 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.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 141,
"wins": 63,
"losses": 78,
"win_pct": 0.4468,
"runs_scored": 606.0,
"runs_allowed": 691.0,
"run_differential": -85.0,
"run_differential_per_game": -0.6028,
"avg_runs_scored": 4.2979,
"avg_runs_allowed": 4.9007,
"offense_index": 0.961,
"defense_index": 0.9125,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.7,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0844
},
"opponent": {
"team": "TOR",
"games": 141,
"wins": 70,
"losses": 71,
"win_pct": 0.4965,
"runs_scored": 566.0,
"runs_allowed": 607.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2908,
"avg_runs_scored": 4.0142,
"avg_runs_allowed": 4.305,
"offense_index": 0.8976,
"defense_index": 1.0388,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.9,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0037
},
"edges": {
"quality_edge": -0.0807,
"offense_edge": -0.039,
"opponent_offense_edge": -0.1024,
"defense_strength": -0.0875,
"opponent_defense_weakness": -0.0388,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9982,
"run_prevention": 0.9964,
"strikeout": 1.0058
},
"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": 211.0,
"k_percent": 18.4,
"bb_percent": 7.6,
"woba": 0.268,
"xwoba": 0.309,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.8057,
"avg_hyper_speed": 93.8898,
"whiff_percent": 25.1,
"swing_percent": 46.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2746,
"command_and_miss": -0.15,
"regression_edge": -1.1714,
"xwoba_edge": 0.0571,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.0143,
"whiff_edge": -0.0143,
"bb_edge": 0.4,
"pitch_design_score": -0.0023
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 32,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 32,
"pitch_usage": 0.0,
"release_speed": 89.82679331429227,
"release_spin_rate": 2099.5103408384525,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 32,
"pitch_usage": 0.0,
"release_speed": 89.82679331429227,
"release_spin_rate": 2099.5103408384525,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.8268,
"release_spin_rate": 2099.5103,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0023,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0165,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0022,
"sample_weight": 0.844,
"run_prevention_factor": 1.0002,
"strikeout_factor": 0.9826,
"walk_factor": 0.973,
"homer_factor": 0.9891,
"woba_minus_xwoba": -0.041,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "663738",
"espn_id": 41227,
"player_name": "Daniel Lynch IV",
"team": "KC",
"role": "pitcher",
"espn_rank": 183,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 183,
"gp_value": 51.0,
"gp_rank": 86,
"gs_value": 5.0,
"gs_rank": 216,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.0648,
"era_rank": null,
"w_value": 4.0,
"w_rank": 180,
"l_value": 4.0,
"l_rank": 170,
"sv_value": 1.0,
"sv_rank": 134,
"hld_value": 13.0,
"hld_rank": 47,
"ip_value": 61.2,
"ip_rank": 208,
"h_value": 46.0,
"h_rank": 253,
"er_value": 21.0,
"er_rank": 291,
"hr_value": 5.0,
"hr_rank": 303,
"bb_value": 19.0,
"bb_rank": 301,
"k_value": 46.0,
"k_rank": 303,
"k_per_9_value": 6.7135134,
"k_per_9_rank": 39,
"whip_value": 1.054,
"whip_rank": null,
"war_value": 0.99,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0002,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0002,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9772,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9908,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9853,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 86,
"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/20260904_TOR@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"
}
} |
| 20260904 | 20260904_WAS@LAD | away | Jackson Kent | Jackson Kent | True | 4.1 | 5.0 | 2 | 4 | 3 | -1 | 5/4 | 4/4 | 4/4 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 5.586206896551724,
"WHIP": 1.7068965517241381,
"IP": 19.1,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.833,
"recent_avg_IP": 4.833,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2195,
"sample_weight": 0.45,
"run_prevention_factor": 1.0187,
"strikeout_factor": 0.9835,
"walk_factor": 1.0702,
"homer_factor": 1.0277,
"regression_flag": "neutral",
"k_percent": 19.3,
"bb_percent": 17.0,
"woba": 0.335,
"xwoba": 0.351,
"barrel_percent": 7.1,
"hard_hit_percent": 42.9,
"whiff_percent": 21.4
},
"espn_rank": {
"rank": 459,
"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": "800600",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 12.0,
"R": 12.0,
"H": 18.0,
"BB": 15.0,
"SO": 17.0,
"HR": 1.0,
"BF": 88.0,
"Pitches": 358.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 3.75,
"SO": 4.25,
"HR": 0.25,
"BF": 22.0,
"Pitches": 89.5
},
"rates": {
"ERA": 5.5862,
"WHIP": 1.7069,
"ER_per_IP": 0.62069,
"H_per_IP": 0.93103,
"BB_per_IP": 0.77586,
"SO_per_IP": 0.87931,
"HR_per_IP": 0.05172
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 12.0,
"R": 12.0,
"H": 18.0,
"BB": 15.0,
"SO": 17.0,
"HR": 1.0,
"BF": 88.0,
"Pitches": 358.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 3.75,
"SO": 4.25,
"HR": 0.25,
"BF": 22.0,
"Pitches": 89.5
},
"rates": {
"ERA": 5.5862,
"WHIP": 1.7069,
"ER_per_IP": 0.62069,
"H_per_IP": 0.93103,
"BB_per_IP": 0.77586,
"SO_per_IP": 0.87931,
"HR_per_IP": 0.05172
}
},
"season": {
"games": 4,
"totals": {
"IP": 19.1,
"ER": 12.0,
"R": 12.0,
"H": 18.0,
"BB": 15.0,
"SO": 17.0,
"HR": 1.0,
"BF": 88.0,
"Pitches": 358.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 3.75,
"SO": 4.25,
"HR": 0.25,
"BF": 22.0,
"Pitches": 89.5
},
"rates": {
"ERA": 5.5862,
"WHIP": 1.7069,
"ER_per_IP": 0.62069,
"H_per_IP": 0.93103,
"BB_per_IP": 0.77586,
"SO_per_IP": 0.87931,
"HR_per_IP": 0.05172
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.677,
"predicted_H": 4.626,
"predicted_BB": 2.673,
"predicted_SO": 4.424,
"predicted_HR": 0.505,
"predicted_ERA": 4.9655,
"predicted_WHIP": 1.5043
}
},
"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": 4.0,
"form": 2.677,
"final": 3.4506,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.626,
"final": 4.8447,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.673,
"final": 3.449,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.424,
"final": 4.1761,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.505,
"final": 0.2097,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9655,
"final": 4.9655,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5043,
"final": 1.5043,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"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": 12,
"H": 18,
"BB": 15,
"SO": 17,
"HR": 1,
"ERA": 5.586206896551723,
"WHIP": 1.7068965517241377,
"K9": 7.913793103448275,
"HR9": 0.4655172413793103,
"games_pitched": 4,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 1.093356802544124,
"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": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800600",
"player_name": "Jackson Kent",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": 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": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 4.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": 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": 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": 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": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 142,
"wins": 67,
"losses": 75,
"win_pct": 0.4718,
"runs_scored": 735.0,
"runs_allowed": 721.0,
"run_differential": 14.0,
"run_differential_per_game": 0.0986,
"avg_runs_scored": 5.1761,
"avg_runs_allowed": 5.0775,
"offense_index": 1.1541,
"defense_index": 0.8833,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.9,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0231
},
"opponent": {
"team": "LAD",
"games": 140,
"wins": 83,
"losses": 57,
"win_pct": 0.5929,
"runs_scored": 687.0,
"runs_allowed": 540.0,
"run_differential": 147.0,
"run_differential_per_game": 1.05,
"avg_runs_scored": 4.9071,
"avg_runs_allowed": 3.8571,
"offense_index": 1.0941,
"defense_index": 1.1628,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.8,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.1727
},
"edges": {
"quality_edge": -0.1496,
"offense_edge": 0.1541,
"opponent_offense_edge": 0.0941,
"defense_strength": -0.1167,
"opponent_defense_weakness": -0.1628,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9868,
"run_prevention": 1.0342,
"strikeout": 0.988
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800600",
"profile": {
"available": true,
"pitcher_id": "800600",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 41.0,
"k_percent": 19.3,
"bb_percent": 17.0,
"woba": 0.335,
"xwoba": 0.351,
"sweet_spot_percent": 28.6,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 42.9,
"avg_best_speed": 73.1939,
"avg_hyper_speed": 94.3104,
"whiff_percent": 21.4,
"swing_percent": 44.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4333,
"command_and_miss": -0.7471,
"regression_edge": -0.4571,
"xwoba_edge": -1.1429,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.7286,
"whiff_edge": -0.5429,
"bb_edge": -1.95,
"pitch_design_score": -0.0639
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800600",
"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.72623626373627,
"release_spin_rate": 2092.4313186813188,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.72623626373627,
"release_spin_rate": 2092.4313186813188,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.7262,
"release_spin_rate": 2092.4313,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0639,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4567,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2195,
"sample_weight": 0.45,
"run_prevention_factor": 1.0187,
"strikeout_factor": 0.9835,
"walk_factor": 1.0702,
"homer_factor": 1.0277,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "800600",
"espn_id": 5007807,
"player_name": "Jackson Kent",
"team": "WSH",
"role": "pitcher",
"espn_rank": 459,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 459,
"gp_value": 4.0,
"gp_rank": 654,
"gs_value": 4.0,
"gs_rank": 231,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 5.5862,
"era_rank": null,
"w_value": 1.0,
"w_rank": 402,
"l_value": 2.0,
"l_rank": 319,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 19.1,
"ip_rank": 509,
"h_value": 18.0,
"h_rank": 521,
"er_value": 12.0,
"er_rank": 466,
"hr_value": 1.0,
"hr_rank": 603,
"bb_value": 15.0,
"bb_rank": 373,
"k_value": 17.0,
"k_rank": 502,
"k_per_9_value": 7.9137936,
"k_per_9_rank": 26,
"whip_value": 1.7068,
"whip_rank": null,
"war_value": 0.03,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0084,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0084,
"adjusted": 5
},
"predicted_BB": {
"original": 4.0,
"factor": 1.0316,
"adjusted": 4
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0125,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9926,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 87,
"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/20260904_WAS@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"
}
} |
| 20260904 | 20260904_WAS@LAD | home | Blake Snell | Blake Snell | True | 5.1 | 6.0 | 2 | 2 | 0 | -2 | 2/5 | 1/2 | 10/7 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 2.423076923076923,
"WHIP": 1.0769230769230769,
"IP": 26.0,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 5.2,
"recent_avg_IP": 5.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6298,
"sample_weight": 0.45,
"run_prevention_factor": 0.9465,
"strikeout_factor": 1.0591,
"walk_factor": 1.0162,
"homer_factor": 0.8778,
"regression_flag": "neutral",
"k_percent": 33.0,
"bb_percent": 11.0,
"woba": 0.227,
"xwoba": 0.225,
"barrel_percent": 1.7,
"hard_hit_percent": 10.0,
"whiff_percent": 37.1
},
"espn_rank": {
"rank": 217,
"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": "605483",
"report_date": "20260904",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 7.0,
"R": 8.0,
"H": 16.0,
"BB": 12.0,
"SO": 36.0,
"HR": 0.0,
"BF": 109.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.6,
"H": 3.2,
"BB": 2.4,
"SO": 7.2,
"HR": 0.0,
"BF": 21.8,
"Pitches": 88.8
},
"rates": {
"ERA": 2.4231,
"WHIP": 1.0769,
"ER_per_IP": 0.26923,
"H_per_IP": 0.61538,
"BB_per_IP": 0.46154,
"SO_per_IP": 1.38462,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 7.0,
"R": 8.0,
"H": 16.0,
"BB": 12.0,
"SO": 36.0,
"HR": 0.0,
"BF": 109.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.6,
"H": 3.2,
"BB": 2.4,
"SO": 7.2,
"HR": 0.0,
"BF": 21.8,
"Pitches": 88.8
},
"rates": {
"ERA": 2.4231,
"WHIP": 1.0769,
"ER_per_IP": 0.26923,
"H_per_IP": 0.61538,
"BB_per_IP": 0.46154,
"SO_per_IP": 1.38462,
"HR_per_IP": 0.0
}
},
"season": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 7.0,
"R": 8.0,
"H": 16.0,
"BB": 12.0,
"SO": 36.0,
"HR": 0.0,
"BF": 109.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.6,
"H": 3.2,
"BB": 2.4,
"SO": 7.2,
"HR": 0.0,
"BF": 21.8,
"Pitches": 88.8
},
"rates": {
"ERA": 2.4231,
"WHIP": 1.0769,
"ER_per_IP": 0.26923,
"H_per_IP": 0.61538,
"BB_per_IP": 0.46154,
"SO_per_IP": 1.38462,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.042,
"predicted_H": 4.231,
"predicted_BB": 2.22,
"predicted_SO": 6.193,
"predicted_HR": 0.389,
"predicted_ERA": 3.4461,
"predicted_WHIP": 1.2096
}
},
"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": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.042,
"final": 2.0184,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.231,
"final": 2.9789,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.22,
"final": 1.5353,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 10.0,
"form": 6.193,
"final": 8.3297,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.389,
"final": 0.1707,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4461,
"final": 3.4461,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2096,
"final": 1.2096,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"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": 26.0,
"ER": 7,
"H": 16,
"BB": 12,
"SO": 36,
"HR": 0,
"ERA": 2.423076923076923,
"WHIP": 1.0769230769230769,
"K9": 12.461538461538462,
"HR9": 0.0,
"games_pitched": 5,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.809829740681111,
"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": 0.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": "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": 2,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 10,
"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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.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": "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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 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": 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": {}
},
{
"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": 2.0,
"predicted_HR": 0.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": 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": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "LAD",
"games": 140,
"wins": 83,
"losses": 57,
"win_pct": 0.5929,
"runs_scored": 687.0,
"runs_allowed": 540.0,
"run_differential": 147.0,
"run_differential_per_game": 1.05,
"avg_runs_scored": 4.9071,
"avg_runs_allowed": 3.8571,
"offense_index": 1.0941,
"defense_index": 1.1628,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.8,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.1727
},
"opponent": {
"team": "WAS",
"games": 142,
"wins": 67,
"losses": 75,
"win_pct": 0.4718,
"runs_scored": 735.0,
"runs_allowed": 721.0,
"run_differential": 14.0,
"run_differential_per_game": 0.0986,
"avg_runs_scored": 5.1761,
"avg_runs_allowed": 5.0775,
"offense_index": 1.1541,
"defense_index": 0.8833,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.9,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0231
},
"edges": {
"quality_edge": 0.1496,
"offense_edge": 0.0941,
"opponent_offense_edge": 0.1541,
"defense_strength": 0.1628,
"opponent_defense_weakness": 0.1167,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0047,
"run_prevention": 1.0009,
"strikeout": 0.9922
},
"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": 63.0,
"k_percent": 33.0,
"bb_percent": 11.0,
"woba": 0.227,
"xwoba": 0.225,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 1.7,
"hard_hit_percent": 10.0,
"avg_best_speed": 70.4795,
"avg_hyper_speed": 90.2681,
"whiff_percent": 37.1,
"swing_percent": 50.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9069,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.9241,
"command_and_miss": 1.2186,
"regression_edge": 0.0571,
"xwoba_edge": 2.4571,
"barrel_edge": 1.2222,
"hard_hit_edge": 2.5,
"whiff_edge": 1.7,
"bb_edge": -0.45,
"pitch_design_score": -0.0064
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605483",
"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.75331649831651,
"release_spin_rate": 2378.2219095719097,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.75331649831651,
"release_spin_rate": 2378.2219095719097,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.7533,
"release_spin_rate": 2378.2219,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0064,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0459,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.6298,
"sample_weight": 0.45,
"run_prevention_factor": 0.9465,
"strikeout_factor": 1.0591,
"walk_factor": 1.0162,
"homer_factor": 0.8778,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605483",
"espn_id": 33748,
"player_name": "Blake Snell",
"team": "LAD",
"role": "pitcher",
"espn_rank": 217,
"espn_total_ranked": 851,
"metrics": {
"espn_rank": 217,
"gp_value": 5.0,
"gp_rank": 614,
"gs_value": 5.0,
"gs_rank": 216,
"qs_value": 3.0,
"qs_rank": 136,
"era_value": 2.423,
"era_rank": null,
"w_value": 2.0,
"w_rank": 303,
"l_value": 1.0,
"l_rank": 422,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 347,
"ip_value": 26.0,
"ip_rank": 453,
"h_value": 16.0,
"h_rank": 550,
"er_value": 7.0,
"er_rank": 588,
"hr_value": 0.0,
"hr_rank": 734,
"bb_value": 12.0,
"bb_rank": 433,
"k_value": 36.0,
"k_rank": 365,
"k_per_9_value": 12.461538,
"k_per_9_rank": 21,
"whip_value": 1.0769,
"whip_rank": null,
"war_value": 0.72,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9759,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9759,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0073,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.945,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0266,
"adjusted": 7
}
}
}
},
"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": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 87,
"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": "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/20260904_WAS@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"
}
} |