| 20260926 | 20260926_ARI@SD | away | Taylor Clarke | Taylor Clarke | True | 6.0 | 0.2 | -16 | 1 | 1 | 0 | 2/3 | 3/0 | 6/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.598930481283422,
"WHIP": 0.8823529411764706,
"IP": 62.1,
"games_started": null,
"games_pitched": 62,
"role_avg_IP": 1.005,
"recent_avg_IP": 1.067,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1617,
"sample_weight": 0.912,
"run_prevention_factor": 1.0137,
"strikeout_factor": 0.9547,
"walk_factor": 0.9252,
"homer_factor": 1.0196,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.0,
"bb_percent": 5.0,
"woba": 0.264,
"xwoba": 0.322,
"barrel_percent": 9.1,
"hard_hit_percent": 34.1,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 151,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 62.1,
"season_ERA": 2.599,
"season_WHIP": 0.882,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.781,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "664199",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 62,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 1.0,
"SO": 5.0,
"HR": 2.0,
"BF": 20.0,
"Pitches": 76.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.2,
"SO": 1.0,
"HR": 0.4,
"BF": 4.0,
"Pitches": 15.2
},
"rates": {
"ERA": 5.0625,
"WHIP": 0.9375,
"ER_per_IP": 0.5625,
"H_per_IP": 0.75,
"BB_per_IP": 0.1875,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 5.0,
"R": 5.0,
"H": 8.0,
"BB": 2.0,
"SO": 9.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 143.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.8,
"BB": 0.2,
"SO": 0.9,
"HR": 0.2,
"BF": 3.8,
"Pitches": 14.3
},
"rates": {
"ERA": 4.5,
"WHIP": 1.0,
"ER_per_IP": 0.5,
"H_per_IP": 0.8,
"BB_per_IP": 0.2,
"SO_per_IP": 0.9,
"HR_per_IP": 0.2
}
},
"season": {
"games": 62,
"totals": {
"IP": 62.1,
"ER": 18.0,
"R": 21.0,
"H": 44.0,
"BB": 11.0,
"SO": 37.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 883.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2903,
"R": 0.3387,
"H": 0.7097,
"BB": 0.1774,
"SO": 0.5968,
"HR": 0.0968,
"BF": 3.8387,
"Pitches": 14.2419
},
"rates": {
"ERA": 2.5989,
"WHIP": 0.8824,
"ER_per_IP": 0.28877,
"H_per_IP": 0.70588,
"BB_per_IP": 0.17647,
"SO_per_IP": 0.59358,
"HR_per_IP": 0.09626
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.188,
"predicted_H": 1.977,
"predicted_BB": 0.585,
"predicted_SO": 2.113,
"predicted_HR": 0.547,
"predicted_ERA": 4.443,
"predicted_WHIP": 1.0649
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4688,
"form_weight": 0.5312,
"form_reliability": 0.7188,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.781,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.188,
"final": 1.0999,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 1.977,
"final": 1.9878,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.585,
"final": 1.7172,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.113,
"final": 3.9353,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.547,
"final": 0.2906,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.443,
"final": 4.443,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0649,
"final": 1.0649,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 5,
"H": 8,
"BB": 2,
"SO": 9,
"HR": 2,
"ERA": 4.5,
"WHIP": 1.0,
"K9": 8.1,
"HR9": 1.8,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.9970322928826013,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.781,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664199",
"player_name": "Taylor Clarke",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 160,
"wins": 86,
"losses": 74,
"win_pct": 0.5375,
"runs_scored": 728.0,
"runs_allowed": 711.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1062,
"avg_runs_scored": 4.55,
"avg_runs_allowed": 4.4437,
"offense_index": 1.0144,
"defense_index": 1.0093,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.8,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1149
},
"opponent": {
"team": "SD",
"games": 160,
"wins": 89,
"losses": 71,
"win_pct": 0.5563,
"runs_scored": 703.0,
"runs_allowed": 670.0,
"run_differential": 33.0,
"run_differential_per_game": 0.2062,
"avg_runs_scored": 4.3937,
"avg_runs_allowed": 4.1875,
"offense_index": 0.9796,
"defense_index": 1.0711,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1431
},
"edges": {
"quality_edge": -0.0282,
"offense_edge": 0.0144,
"opponent_offense_edge": -0.0204,
"defense_strength": 0.0093,
"opponent_defense_weakness": -0.0711,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0,
"run_prevention": 0.9972,
"strikeout": 1.0008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664199",
"profile": {
"available": true,
"pitcher_id": "664199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 228.0,
"k_percent": 16.0,
"bb_percent": 5.0,
"woba": 0.264,
"xwoba": 0.322,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 34.1,
"avg_best_speed": 76.0809,
"avg_hyper_speed": 93.5635,
"whiff_percent": 22.5,
"swing_percent": 49.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1127,
"command_and_miss": -0.3157,
"regression_edge": -1.6571,
"xwoba_edge": -0.3143,
"barrel_edge": -0.4222,
"hard_hit_edge": 0.5429,
"whiff_edge": -0.3857,
"bb_edge": 1.025,
"pitch_design_score": 0.0927
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664199",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 15,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 15,
"pitch_usage": 0.0,
"release_speed": 91.51984764546245,
"release_spin_rate": 2087.327565588381,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 15,
"pitch_usage": 0.0,
"release_speed": 91.51984764546245,
"release_spin_rate": 2087.327565588381,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.5198,
"release_spin_rate": 2087.3276,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0927,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.6623,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1617,
"sample_weight": 0.912,
"run_prevention_factor": 1.0137,
"strikeout_factor": 0.9547,
"walk_factor": 0.9252,
"homer_factor": 1.0196,
"woba_minus_xwoba": -0.058,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "664199",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0125,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0125,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9318,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0179,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9587,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -16 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260926_ARI@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_ARI@SD | home | Walker Buehler | Walker Buehler | True | 4.2 | 3.2 | -3 | 5 | 3 | -2 | 5/5 | 2/1 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.56,
"WHIP": 1.34,
"IP": 150.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 4.839,
"recent_avg_IP": 4.733,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1552,
"sample_weight": 1.0,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.9571,
"walk_factor": 0.994,
"homer_factor": 1.0293,
"regression_flag": "neutral",
"k_percent": 20.2,
"bb_percent": 8.8,
"woba": 0.327,
"xwoba": 0.315,
"barrel_percent": 8.4,
"hard_hit_percent": 38.7,
"whiff_percent": 19.5
},
"espn_rank": {
"rank": 189,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "621111",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 11.0,
"R": 11.0,
"H": 23.0,
"BB": 7.0,
"SO": 20.0,
"HR": 6.0,
"BF": 95.0,
"Pitches": 388.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.2,
"H": 4.6,
"BB": 1.4,
"SO": 4.0,
"HR": 1.2,
"BF": 19.0,
"Pitches": 77.6
},
"rates": {
"ERA": 4.1831,
"WHIP": 1.2676,
"ER_per_IP": 0.46479,
"H_per_IP": 0.97183,
"BB_per_IP": 0.29577,
"SO_per_IP": 0.84507,
"HR_per_IP": 0.25352
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 19.0,
"R": 19.0,
"H": 46.0,
"BB": 14.0,
"SO": 37.0,
"HR": 8.0,
"BF": 199.0,
"Pitches": 813.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 1.9,
"H": 4.6,
"BB": 1.4,
"SO": 3.7,
"HR": 0.8,
"BF": 19.9,
"Pitches": 81.3
},
"rates": {
"ERA": 3.42,
"WHIP": 1.2,
"ER_per_IP": 0.38,
"H_per_IP": 0.92,
"BB_per_IP": 0.28,
"SO_per_IP": 0.74,
"HR_per_IP": 0.16
}
},
"season": {
"games": 31,
"totals": {
"IP": 150.0,
"ER": 76.0,
"R": 77.0,
"H": 145.0,
"BB": 56.0,
"SO": 128.0,
"HR": 21.0,
"BF": 633.0,
"Pitches": 2535.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4516,
"R": 2.4839,
"H": 4.6774,
"BB": 1.8065,
"SO": 4.129,
"HR": 0.6774,
"BF": 20.4194,
"Pitches": 81.7742
},
"rates": {
"ERA": 4.56,
"WHIP": 1.34,
"ER_per_IP": 0.50667,
"H_per_IP": 0.96667,
"BB_per_IP": 0.37333,
"SO_per_IP": 0.85333,
"HR_per_IP": 0.14
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.187,
"predicted_H": 4.617,
"predicted_BB": 1.525,
"predicted_SO": 3.992,
"predicted_HR": 0.923,
"predicted_ERA": 4.079,
"predicted_WHIP": 1.2729
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.187,
"final": 3.3366,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.617,
"final": 4.7735,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.525,
"final": 1.7191,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.992,
"final": 4.404,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.923,
"final": 0.5458,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.079,
"final": 4.079,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2729,
"final": 1.2729,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.0,
"ER": 19,
"H": 46,
"BB": 14,
"SO": 37,
"HR": 8,
"ERA": 3.4199999999999995,
"WHIP": 1.1999999999999997,
"K9": 6.659999999999999,
"HR9": 1.4399999999999997,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.8745925292968749,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "621111",
"player_name": "Walker Buehler",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 160,
"wins": 89,
"losses": 71,
"win_pct": 0.5563,
"runs_scored": 703.0,
"runs_allowed": 670.0,
"run_differential": 33.0,
"run_differential_per_game": 0.2062,
"avg_runs_scored": 4.3937,
"avg_runs_allowed": 4.1875,
"offense_index": 0.9796,
"defense_index": 1.0711,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1431
},
"opponent": {
"team": "ARI",
"games": 160,
"wins": 86,
"losses": 74,
"win_pct": 0.5375,
"runs_scored": 728.0,
"runs_allowed": 711.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1062,
"avg_runs_scored": 4.55,
"avg_runs_allowed": 4.4437,
"offense_index": 1.0144,
"defense_index": 1.0093,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.8,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1149
},
"edges": {
"quality_edge": 0.0282,
"offense_edge": -0.0204,
"opponent_offense_edge": 0.0144,
"defense_strength": 0.0711,
"opponent_defense_weakness": -0.0093,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0027,
"run_prevention": 0.9938,
"strikeout": 0.9997
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621111",
"profile": {
"available": true,
"pitcher_id": "621111",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 583.0,
"k_percent": 20.2,
"bb_percent": 8.8,
"woba": 0.327,
"xwoba": 0.315,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 38.7,
"avg_best_speed": 79.0476,
"avg_hyper_speed": 94.091,
"whiff_percent": 19.5,
"swing_percent": 45.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1591,
"command_and_miss": -0.3857,
"regression_edge": 0.3429,
"xwoba_edge": -0.1143,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.1143,
"whiff_edge": -0.8143,
"bb_edge": 0.075,
"pitch_design_score": -0.0012
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621111",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.84218390169383,
"release_spin_rate": 2199.080983688629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.84218390169383,
"release_spin_rate": 2199.080983688629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.8422,
"release_spin_rate": 2199.081,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0012,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0088,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1552,
"sample_weight": 1.0,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.9571,
"walk_factor": 0.994,
"homer_factor": 1.0293,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "621111",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0132,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0132,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.994,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0293,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9571,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260926_ARI@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_ATL@MIA | away | Brent Suter | Brent Suter | True | 5.0 | 3.0 | -6 | 4 | 0 | -4 | 4/1 | 3/0 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.477272727272727,
"WHIP": 1.25,
"IP": 88.0,
"games_started": null,
"games_pitched": 53,
"role_avg_IP": 1.889,
"recent_avg_IP": 1.889,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1037,
"sample_weight": 1.0,
"run_prevention_factor": 0.9912,
"strikeout_factor": 0.9794,
"walk_factor": 0.96,
"homer_factor": 0.9359,
"regression_flag": "neutral",
"k_percent": 20.4,
"bb_percent": 7.1,
"woba": 0.311,
"xwoba": 0.307,
"barrel_percent": 6.1,
"hard_hit_percent": 30.7,
"whiff_percent": 23.2
},
"espn_rank": {
"rank": 235,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 88.0,
"season_ERA": 3.477,
"season_WHIP": 1.25,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.044,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.783,
"prior_weight": 0.217
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608718",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 53,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.1,
"ER": 1.0,
"R": 2.0,
"H": 5.0,
"BB": 2.0,
"SO": 7.0,
"HR": 1.0,
"BF": 32.0,
"Pitches": 119.0
},
"per_game": {
"IP": 1.2,
"ER": 0.2,
"R": 0.4,
"H": 1.0,
"BB": 0.4,
"SO": 1.4,
"HR": 0.2,
"BF": 6.4,
"Pitches": 23.8
},
"rates": {
"ERA": 1.08,
"WHIP": 0.84,
"ER_per_IP": 0.12,
"H_per_IP": 0.6,
"BB_per_IP": 0.24,
"SO_per_IP": 0.84,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.2,
"ER": 4.0,
"R": 6.0,
"H": 17.0,
"BB": 6.0,
"SO": 16.0,
"HR": 2.0,
"BF": 81.0,
"Pitches": 298.0
},
"per_game": {
"IP": 2.0,
"ER": 0.4,
"R": 0.6,
"H": 1.7,
"BB": 0.6,
"SO": 1.6,
"HR": 0.2,
"BF": 8.1,
"Pitches": 29.8
},
"rates": {
"ERA": 1.8305,
"WHIP": 1.1695,
"ER_per_IP": 0.20339,
"H_per_IP": 0.86441,
"BB_per_IP": 0.30508,
"SO_per_IP": 0.81356,
"HR_per_IP": 0.10169
}
},
"season": {
"games": 53,
"totals": {
"IP": 88.0,
"ER": 34.0,
"R": 42.0,
"H": 85.0,
"BB": 25.0,
"SO": 75.0,
"HR": 9.0,
"BF": 366.0,
"Pitches": 1483.0
},
"per_game": {
"IP": 1.2,
"ER": 0.6415,
"R": 0.7925,
"H": 1.6038,
"BB": 0.4717,
"SO": 1.4151,
"HR": 0.1698,
"BF": 6.9057,
"Pitches": 27.9811
},
"rates": {
"ERA": 3.4773,
"WHIP": 1.25,
"ER_per_IP": 0.38636,
"H_per_IP": 0.96591,
"BB_per_IP": 0.28409,
"SO_per_IP": 0.85227,
"HR_per_IP": 0.10227
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.67,
"predicted_H": 2.017,
"predicted_BB": 0.732,
"predicted_SO": 2.123,
"predicted_HR": 0.294,
"predicted_ERA": 2.4297,
"predicted_WHIP": 1.108
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4417,
"form_weight": 0.5583,
"form_reliability": 0.783,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.044,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.783,
"prior_weight": 0.217
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 2.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 0.67,
"final": 2.1408,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.017,
"final": 2.8929,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.732,
"final": 1.7337,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 2.123,
"final": 2.5104,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.294,
"final": 0.1641,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4297,
"final": 2.4297,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.108,
"final": 1.108,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 19.2,
"ER": 4,
"H": 17,
"BB": 6,
"SO": 16,
"HR": 2,
"ERA": 1.8305084745762714,
"WHIP": 1.169491525423729,
"K9": 7.322033898305086,
"HR9": 0.9152542372881357,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.8001610611478487,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.044,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.783,
"prior_weight": 0.217
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608718",
"player_name": "Brent Suter",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 160,
"wins": 93,
"losses": 67,
"win_pct": 0.5813,
"runs_scored": 731.0,
"runs_allowed": 618.0,
"run_differential": 113.0,
"run_differential_per_game": 0.7063,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 3.8625,
"offense_index": 1.0187,
"defense_index": 1.1611,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.1,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1557
},
"opponent": {
"team": "MIA",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 707.0,
"runs_allowed": 701.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.4188,
"avg_runs_allowed": 4.3812,
"offense_index": 0.9853,
"defense_index": 1.0236,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.0007
},
"edges": {
"quality_edge": 0.1564,
"offense_edge": 0.0187,
"opponent_offense_edge": -0.0147,
"defense_strength": 0.1611,
"opponent_defense_weakness": -0.0236,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0117,
"run_prevention": 0.9737,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608718",
"profile": {
"available": true,
"pitcher_id": "608718",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 354.0,
"k_percent": 20.4,
"bb_percent": 7.1,
"woba": 0.311,
"xwoba": 0.307,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 30.7,
"avg_best_speed": 75.0643,
"avg_hyper_speed": 93.0597,
"whiff_percent": 23.2,
"swing_percent": 46.6
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2525,
"command_and_miss": -0.1029,
"regression_edge": 0.1143,
"xwoba_edge": 0.1143,
"barrel_edge": 0.2444,
"hard_hit_edge": 1.0286,
"whiff_edge": -0.2857,
"bb_edge": 0.5,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608718",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 31,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 31,
"pitch_usage": 0.0,
"release_speed": 83.683563781104,
"release_spin_rate": 1995.2177753340202,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 31,
"pitch_usage": 0.0,
"release_speed": 83.683563781104,
"release_spin_rate": 1995.2177753340202,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 83.6836,
"release_spin_rate": 1995.2178,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1037,
"sample_weight": 1.0,
"run_prevention_factor": 0.9912,
"strikeout_factor": 0.9794,
"walk_factor": 0.96,
"homer_factor": 0.9359,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608718",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9912,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9912,
"adjusted": 4
},
"predicted_BB": {
"original": 5.0,
"factor": 0.96,
"adjusted": 5
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9359,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9794,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260926_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_ATL@MIA | home | Jack Ralston | Jack Ralston | True | 5.0 | 1.1 | -11 | 3 | 3 | 0 | 5/3 | 0/1 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.5,
"WHIP": 1.25,
"IP": 16.0,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 1.067,
"recent_avg_IP": 1.133,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0458,
"sample_weight": 0.45,
"run_prevention_factor": 1.0039,
"strikeout_factor": 0.9907,
"walk_factor": 1.0225,
"homer_factor": 1.0409,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 11.6,
"woba": 0.329,
"xwoba": 0.315,
"barrel_percent": 11.6,
"hard_hit_percent": 39.5,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 388,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.281,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3962,
"prior_weight": 0.6038
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "667652",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.2,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 3.0,
"SO": 8.0,
"HR": 3.0,
"BF": 26.0,
"Pitches": 103.0
},
"per_game": {
"IP": 1.0,
"ER": 0.8,
"R": 0.8,
"H": 1.0,
"BB": 0.6,
"SO": 1.6,
"HR": 0.6,
"BF": 5.2,
"Pitches": 20.6
},
"rates": {
"ERA": 6.3529,
"WHIP": 1.4118,
"ER_per_IP": 0.70588,
"H_per_IP": 0.88235,
"BB_per_IP": 0.52941,
"SO_per_IP": 1.41176,
"HR_per_IP": 0.52941
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 7.0,
"R": 7.0,
"H": 8.0,
"BB": 8.0,
"SO": 13.0,
"HR": 3.0,
"BF": 47.0,
"Pitches": 191.0
},
"per_game": {
"IP": 1.0,
"ER": 0.7,
"R": 0.7,
"H": 0.8,
"BB": 0.8,
"SO": 1.3,
"HR": 0.3,
"BF": 4.7,
"Pitches": 19.1
},
"rates": {
"ERA": 6.3,
"WHIP": 1.6,
"ER_per_IP": 0.7,
"H_per_IP": 0.8,
"BB_per_IP": 0.8,
"SO_per_IP": 1.3,
"HR_per_IP": 0.3
}
},
"season": {
"games": 15,
"totals": {
"IP": 16.0,
"ER": 8.0,
"R": 8.0,
"H": 12.0,
"BB": 8.0,
"SO": 17.0,
"HR": 4.0,
"BF": 69.0,
"Pitches": 278.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5333,
"R": 0.5333,
"H": 0.8,
"BB": 0.5333,
"SO": 1.1333,
"HR": 0.2667,
"BF": 4.6,
"Pitches": 18.5333
},
"rates": {
"ERA": 4.5,
"WHIP": 1.25,
"ER_per_IP": 0.5,
"H_per_IP": 0.75,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0625,
"HR_per_IP": 0.25
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.61,
"predicted_H": 2.59,
"predicted_BB": 1.333,
"predicted_SO": 3.04,
"predicted_HR": 0.69,
"predicted_ERA": 5.1537,
"predicted_WHIP": 1.3955
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6051,
"form_weight": 0.3949,
"form_reliability": 0.3962,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.281,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3962,
"prior_weight": 0.6038
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 2.2,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.61,
"final": 2.4511,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.59,
"final": 4.0483,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.333,
"final": 0.5264,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.04,
"final": 4.226,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.69,
"final": 1.4827,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1537,
"final": 5.1537,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3955,
"final": 1.3955,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 7,
"H": 8,
"BB": 8,
"SO": 13,
"HR": 3,
"ERA": 6.3,
"WHIP": 1.6,
"K9": 11.7,
"HR9": 2.7,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 1.0694968924919763,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.281,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3962,
"prior_weight": 0.6038
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "667652",
"player_name": "Jack Ralston",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 707.0,
"runs_allowed": 701.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.4188,
"avg_runs_allowed": 4.3812,
"offense_index": 0.9853,
"defense_index": 1.0236,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.0007
},
"opponent": {
"team": "ATL",
"games": 160,
"wins": 93,
"losses": 67,
"win_pct": 0.5813,
"runs_scored": 731.0,
"runs_allowed": 618.0,
"run_differential": 113.0,
"run_differential_per_game": 0.7063,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 3.8625,
"offense_index": 1.0187,
"defense_index": 1.1611,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.1,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1557
},
"edges": {
"quality_edge": -0.1564,
"offense_edge": -0.0147,
"opponent_offense_edge": 0.0187,
"defense_strength": 0.0236,
"opponent_defense_weakness": -0.1611,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9937,
"run_prevention": 1.0085,
"strikeout": 0.9938
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "667652",
"profile": {
"available": true,
"pitcher_id": "667652",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 51.0,
"k_percent": 24.6,
"bb_percent": 11.6,
"woba": 0.329,
"xwoba": 0.315,
"sweet_spot_percent": 23.3,
"barrel_batted_rate": 11.6,
"hard_hit_percent": 39.5,
"avg_best_speed": 74.8589,
"avg_hyper_speed": 94.2846,
"whiff_percent": 19.0,
"swing_percent": 37.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0902,
"command_and_miss": -0.2679,
"regression_edge": 0.4,
"xwoba_edge": -0.1143,
"barrel_edge": -0.9778,
"hard_hit_edge": -0.2286,
"whiff_edge": -0.8857,
"bb_edge": -0.625,
"pitch_design_score": -0.2697
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "667652",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 85.04813955680808,
"release_spin_rate": 1401.1758449434726,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 85.04813955680808,
"release_spin_rate": 1401.1758449434726,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.0481,
"release_spin_rate": 1401.1758,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2697,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9264,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0458,
"sample_weight": 0.45,
"run_prevention_factor": 1.0039,
"strikeout_factor": 0.9907,
"walk_factor": 1.0225,
"homer_factor": 1.0409,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "667652",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0018,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0018,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0101,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0184,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9958,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 82,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CIN@TOR | away | Rhett Lowder | Rhett Lowder | True | 4.0 | 6.0 | 6 | 4 | 0 | -4 | 6/3 | 1/2 | 2/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.007853403141361,
"WHIP": 1.5549738219895288,
"IP": 127.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.813,
"recent_avg_IP": 4.067,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6685,
"sample_weight": 1.0,
"run_prevention_factor": 1.0568,
"strikeout_factor": 0.9383,
"walk_factor": 1.004,
"homer_factor": 1.0938,
"regression_flag": "neutral",
"k_percent": 17.4,
"bb_percent": 9.3,
"woba": 0.354,
"xwoba": 0.355,
"barrel_percent": 10.0,
"hard_hit_percent": 39.0,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 750,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695076",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 24.0,
"R": 25.0,
"H": 30.0,
"BB": 11.0,
"SO": 18.0,
"HR": 3.0,
"BF": 103.0,
"Pitches": 423.0
},
"per_game": {
"IP": 4.0,
"ER": 4.8,
"R": 5.0,
"H": 6.0,
"BB": 2.2,
"SO": 3.6,
"HR": 0.6,
"BF": 20.6,
"Pitches": 84.6
},
"rates": {
"ERA": 10.623,
"WHIP": 2.0164,
"ER_per_IP": 1.18033,
"H_per_IP": 1.47541,
"BB_per_IP": 0.54098,
"SO_per_IP": 0.88525,
"HR_per_IP": 0.14754
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 37.0,
"R": 39.0,
"H": 60.0,
"BB": 17.0,
"SO": 36.0,
"HR": 9.0,
"BF": 228.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.0,
"ER": 3.7,
"R": 3.9,
"H": 6.0,
"BB": 1.7,
"SO": 3.6,
"HR": 0.9,
"BF": 22.8,
"Pitches": 89.3
},
"rates": {
"ERA": 6.6159,
"WHIP": 1.5298,
"ER_per_IP": 0.7351,
"H_per_IP": 1.19205,
"BB_per_IP": 0.33775,
"SO_per_IP": 0.71523,
"HR_per_IP": 0.17881
}
},
"season": {
"games": 28,
"totals": {
"IP": 127.1,
"ER": 85.0,
"R": 88.0,
"H": 144.0,
"BB": 54.0,
"SO": 101.0,
"HR": 18.0,
"BF": 581.0,
"Pitches": 2217.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0357,
"R": 3.1429,
"H": 5.1429,
"BB": 1.9286,
"SO": 3.6071,
"HR": 0.6429,
"BF": 20.75,
"Pitches": 79.1786
},
"rates": {
"ERA": 6.0079,
"WHIP": 1.555,
"ER_per_IP": 0.66754,
"H_per_IP": 1.13089,
"BB_per_IP": 0.42408,
"SO_per_IP": 0.79319,
"HR_per_IP": 0.14136
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.836,
"predicted_H": 5.612,
"predicted_BB": 1.946,
"predicted_SO": 3.688,
"predicted_HR": 0.696,
"predicted_ERA": 7.7407,
"predicted_WHIP": 1.6946
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.836,
"final": 3.4899,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.612,
"final": 5.3586,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.946,
"final": 1.5543,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.688,
"final": 2.9892,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.696,
"final": 0.8219,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.7407,
"final": 7.7407,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6946,
"final": 1.6946,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 37,
"H": 60,
"BB": 17,
"SO": 36,
"HR": 9,
"ERA": 6.615894039735099,
"WHIP": 1.529801324503311,
"K9": 6.437086092715232,
"HR9": 1.609271523178808,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.2423756418796563,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695076",
"player_name": "Rhett Lowder",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 660.0,
"runs_allowed": 820.0,
"run_differential": -160.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.125,
"avg_runs_allowed": 5.125,
"offense_index": 0.9197,
"defense_index": 0.8752,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1895
},
"opponent": {
"team": "TOR",
"games": 160,
"wins": 78,
"losses": 82,
"win_pct": 0.4875,
"runs_scored": 642.0,
"runs_allowed": 688.0,
"run_differential": -46.0,
"run_differential_per_game": -0.2875,
"avg_runs_scored": 4.0125,
"avg_runs_allowed": 4.3,
"offense_index": 0.8946,
"defense_index": 1.0431,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.9,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1159
},
"edges": {
"quality_edge": -0.0736,
"offense_edge": -0.0803,
"opponent_offense_edge": -0.1054,
"defense_strength": -0.1248,
"opponent_defense_weakness": -0.0431,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9975,
"run_prevention": 0.9993,
"strikeout": 1.0062
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695076",
"profile": {
"available": true,
"pitcher_id": "695076",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 530.0,
"k_percent": 17.4,
"bb_percent": 9.3,
"woba": 0.354,
"xwoba": 0.355,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 39.0,
"avg_best_speed": 80.257,
"avg_hyper_speed": 94.3528,
"whiff_percent": 19.0,
"swing_percent": 44.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8986,
"command_and_miss": -0.6157,
"regression_edge": -0.0286,
"xwoba_edge": -1.2571,
"barrel_edge": -0.6222,
"hard_hit_edge": -0.1571,
"whiff_edge": -0.8857,
"bb_edge": -0.05,
"pitch_design_score": -0.0296
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695076",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.33470320650996,
"release_spin_rate": 2351.7989851419666,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.33470320650996,
"release_spin_rate": 2351.7989851419666,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.3347,
"release_spin_rate": 2351.799,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0296,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2118,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.6685,
"sample_weight": 1.0,
"run_prevention_factor": 1.0568,
"strikeout_factor": 0.9383,
"walk_factor": 1.004,
"homer_factor": 1.0938,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "695076",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0568,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0568,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.004,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0938,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9383,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 72,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260926_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CIN@TOR | home | Trey Yesavage | Trey Yesavage | True | 5.0 | 2.0 | -9 | 3 | 1 | -2 | 4/2 | 2/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6689895470383274,
"WHIP": 1.1289198606271778,
"IP": 95.2,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.035,
"recent_avg_IP": 4.133,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3242,
"sample_weight": 1.0,
"run_prevention_factor": 0.9724,
"strikeout_factor": 1.0389,
"walk_factor": 1.052,
"homer_factor": 0.9398,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 11.7,
"woba": 0.28,
"xwoba": 0.284,
"barrel_percent": 6.4,
"hard_hit_percent": 33.9,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 85,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702056",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 7.0,
"SO": 25.0,
"HR": 4.0,
"BF": 82.0,
"Pitches": 352.0
},
"per_game": {
"IP": 4.0,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 1.4,
"SO": 5.0,
"HR": 0.8,
"BF": 16.4,
"Pitches": 70.4
},
"rates": {
"ERA": 3.4839,
"WHIP": 1.0161,
"ER_per_IP": 0.3871,
"H_per_IP": 0.67742,
"BB_per_IP": 0.33871,
"SO_per_IP": 1.20968,
"HR_per_IP": 0.19355
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 19.0,
"R": 20.0,
"H": 27.0,
"BB": 21.0,
"SO": 47.0,
"HR": 8.0,
"BF": 195.0,
"Pitches": 801.0
},
"per_game": {
"IP": 4.2,
"ER": 1.9,
"R": 2.0,
"H": 2.7,
"BB": 2.1,
"SO": 4.7,
"HR": 0.8,
"BF": 19.5,
"Pitches": 80.1
},
"rates": {
"ERA": 3.5625,
"WHIP": 1.0,
"ER_per_IP": 0.39583,
"H_per_IP": 0.5625,
"BB_per_IP": 0.4375,
"SO_per_IP": 0.97917,
"HR_per_IP": 0.16667
}
},
"season": {
"games": 19,
"totals": {
"IP": 95.2,
"ER": 39.0,
"R": 40.0,
"H": 62.0,
"BB": 46.0,
"SO": 94.0,
"HR": 11.0,
"BF": 393.0,
"Pitches": 1589.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0526,
"R": 2.1053,
"H": 3.2632,
"BB": 2.4211,
"SO": 4.9474,
"HR": 0.5789,
"BF": 20.6842,
"Pitches": 83.6316
},
"rates": {
"ERA": 3.669,
"WHIP": 1.1289,
"ER_per_IP": 0.40767,
"H_per_IP": 0.64808,
"BB_per_IP": 0.48084,
"SO_per_IP": 0.98258,
"HR_per_IP": 0.11498
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.908,
"predicted_H": 3.207,
"predicted_BB": 1.807,
"predicted_SO": 4.792,
"predicted_HR": 0.748,
"predicted_ERA": 3.7721,
"predicted_WHIP": 1.1017
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.908,
"final": 2.3863,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.207,
"final": 3.5543,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.807,
"final": 1.8915,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.792,
"final": 4.0071,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.748,
"final": 0.8584,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7721,
"final": 3.7721,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1017,
"final": 1.1017,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 19,
"H": 27,
"BB": 21,
"SO": 47,
"HR": 8,
"ERA": 3.5625,
"WHIP": 1.0,
"K9": 8.8125,
"HR9": 1.5,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-21T00:00:00"
},
"recent_form_boost": 0.885623779296875,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702056",
"player_name": "Trey Yesavage",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 160,
"wins": 78,
"losses": 82,
"win_pct": 0.4875,
"runs_scored": 642.0,
"runs_allowed": 688.0,
"run_differential": -46.0,
"run_differential_per_game": -0.2875,
"avg_runs_scored": 4.0125,
"avg_runs_allowed": 4.3,
"offense_index": 0.8946,
"defense_index": 1.0431,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.9,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1159
},
"opponent": {
"team": "CIN",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 660.0,
"runs_allowed": 820.0,
"run_differential": -160.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.125,
"avg_runs_allowed": 5.125,
"offense_index": 0.9197,
"defense_index": 0.8752,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1895
},
"edges": {
"quality_edge": 0.0736,
"offense_edge": -0.1054,
"opponent_offense_edge": -0.0803,
"defense_strength": 0.0431,
"opponent_defense_weakness": 0.1248,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0074,
"run_prevention": 0.9792,
"strikeout": 1.0086
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702056",
"profile": {
"available": true,
"pitcher_id": "702056",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 363.0,
"k_percent": 23.9,
"bb_percent": 11.7,
"woba": 0.28,
"xwoba": 0.284,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 33.9,
"avg_best_speed": 78.0872,
"avg_hyper_speed": 93.3361,
"whiff_percent": 30.1,
"swing_percent": 47.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4934,
"command_and_miss": 0.2371,
"regression_edge": -0.1143,
"xwoba_edge": 0.7714,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.5714,
"whiff_edge": 0.7,
"bb_edge": -0.65,
"pitch_design_score": -0.0299
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702056",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 74,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 89.33004145791904,
"release_spin_rate": 2011.7222825919243,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 89.33004145791904,
"release_spin_rate": 2011.7222825919243,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.33,
"release_spin_rate": 2011.7223,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0299,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2136,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.3242,
"sample_weight": 1.0,
"run_prevention_factor": 0.9724,
"strikeout_factor": 1.0389,
"walk_factor": 1.052,
"homer_factor": 0.9398,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "702056",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9724,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9724,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.052,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9398,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0389,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CLE@KC | away | Tanner Bibee | Tanner Bibee | True | 5.1 | 6.0 | 2 | 0 | 3 | 3 | 2/7 | 0/1 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.351648351648351,
"WHIP": 1.2197802197802199,
"IP": 182.0,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.688,
"recent_avg_IP": 5.133,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.171,
"sample_weight": 1.0,
"run_prevention_factor": 1.0145,
"strikeout_factor": 0.9714,
"walk_factor": 0.962,
"homer_factor": 1.0323,
"regression_flag": "neutral",
"k_percent": 18.8,
"bb_percent": 7.2,
"woba": 0.315,
"xwoba": 0.318,
"barrel_percent": 8.2,
"hard_hit_percent": 39.4,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 108,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676440",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 19.0,
"R": 19.0,
"H": 33.0,
"BB": 10.0,
"SO": 19.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 3.8,
"H": 6.6,
"BB": 2.0,
"SO": 3.8,
"HR": 0.6,
"BF": 23.6,
"Pitches": 87.0
},
"rates": {
"ERA": 6.6623,
"WHIP": 1.6753,
"ER_per_IP": 0.74026,
"H_per_IP": 1.28571,
"BB_per_IP": 0.38961,
"SO_per_IP": 0.74026,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 34.0,
"R": 36.0,
"H": 57.0,
"BB": 17.0,
"SO": 45.0,
"HR": 9.0,
"BF": 245.0,
"Pitches": 921.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.6,
"H": 5.7,
"BB": 1.7,
"SO": 4.5,
"HR": 0.9,
"BF": 24.5,
"Pitches": 92.1
},
"rates": {
"ERA": 5.3684,
"WHIP": 1.2982,
"ER_per_IP": 0.59649,
"H_per_IP": 1.0,
"BB_per_IP": 0.29825,
"SO_per_IP": 0.78947,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 32,
"totals": {
"IP": 182.0,
"ER": 88.0,
"R": 92.0,
"H": 168.0,
"BB": 54.0,
"SO": 142.0,
"HR": 29.0,
"BF": 755.0,
"Pitches": 2874.0
},
"per_game": {
"IP": 5.2,
"ER": 2.75,
"R": 2.875,
"H": 5.25,
"BB": 1.6875,
"SO": 4.4375,
"HR": 0.9062,
"BF": 23.5938,
"Pitches": 89.8125
},
"rates": {
"ERA": 4.3516,
"WHIP": 1.2198,
"ER_per_IP": 0.48352,
"H_per_IP": 0.92308,
"BB_per_IP": 0.2967,
"SO_per_IP": 0.78022,
"HR_per_IP": 0.15934
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.334,
"predicted_H": 5.875,
"predicted_BB": 1.847,
"predicted_SO": 4.228,
"predicted_HR": 0.756,
"predicted_ERA": 5.5953,
"predicted_WHIP": 1.4401
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 3.334,
"final": 1.9768,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.875,
"final": 4.2976,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.847,
"final": 1.0951,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.228,
"final": 4.9493,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.756,
"final": 0.4482,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5953,
"final": 5.5953,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4401,
"final": 1.4401,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 34,
"H": 57,
"BB": 17,
"SO": 45,
"HR": 9,
"ERA": 5.368421052631579,
"WHIP": 1.2982456140350878,
"K9": 7.105263157894737,
"HR9": 1.4210526315789473,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.0962460380688046,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676440",
"player_name": "Tanner Bibee",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 0.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 160,
"wins": 84,
"losses": 76,
"win_pct": 0.525,
"runs_scored": 665.0,
"runs_allowed": 659.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.1188,
"offense_index": 0.9272,
"defense_index": 1.0884,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1309
},
"opponent": {
"team": "KC",
"games": 160,
"wins": 68,
"losses": 92,
"win_pct": 0.425,
"runs_scored": 682.0,
"runs_allowed": 797.0,
"run_differential": -115.0,
"run_differential_per_game": -0.7188,
"avg_runs_scored": 4.2625,
"avg_runs_allowed": 4.9813,
"offense_index": 0.9509,
"defense_index": 0.8999,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 6.9,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.2569
},
"edges": {
"quality_edge": 0.3878,
"offense_edge": -0.0728,
"opponent_offense_edge": -0.0491,
"defense_strength": 0.0884,
"opponent_defense_weakness": 0.1001,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0201,
"run_prevention": 0.9639,
"strikeout": 1.0156
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676440",
"profile": {
"available": true,
"pitcher_id": "676440",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 698.0,
"k_percent": 18.8,
"bb_percent": 7.2,
"woba": 0.315,
"xwoba": 0.318,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 39.4,
"avg_best_speed": 78.5581,
"avg_hyper_speed": 93.8911,
"whiff_percent": 23.4,
"swing_percent": 47.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1772,
"command_and_miss": -0.2007,
"regression_edge": -0.0857,
"xwoba_edge": -0.2,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.2143,
"whiff_edge": -0.2571,
"bb_edge": 0.475,
"pitch_design_score": -0.1382
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676440",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 87.39659142983948,
"release_spin_rate": 2309.0608700163434,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 87.39659142983948,
"release_spin_rate": 2309.0608700163434,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.3966,
"release_spin_rate": 2309.0609,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1382,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.987,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.171,
"sample_weight": 1.0,
"run_prevention_factor": 1.0145,
"strikeout_factor": 0.9714,
"walk_factor": 0.962,
"homer_factor": 1.0323,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676440",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0145,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0145,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0323,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9714,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260926_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_CLE@KC | home | Michael Wacha | Michael Wacha | True | 6.1 | 6.1 | 0 | 3 | 2 | -1 | 8/6 | 2/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.334476843910806,
"WHIP": 1.1063464837049741,
"IP": 194.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 6.269,
"recent_avg_IP": 6.333,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0071,
"sample_weight": 1.0,
"run_prevention_factor": 1.0006,
"strikeout_factor": 0.9669,
"walk_factor": 0.952,
"homer_factor": 0.9844,
"regression_flag": "neutral",
"k_percent": 19.6,
"bb_percent": 6.7,
"woba": 0.3,
"xwoba": 0.307,
"barrel_percent": 7.0,
"hard_hit_percent": 36.4,
"whiff_percent": 21.8
},
"espn_rank": {
"rank": 14,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608379",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 9.0,
"R": 9.0,
"H": 21.0,
"BB": 11.0,
"SO": 28.0,
"HR": 6.0,
"BF": 128.0,
"Pitches": 504.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 4.2,
"BB": 2.2,
"SO": 5.6,
"HR": 1.2,
"BF": 25.6,
"Pitches": 100.8
},
"rates": {
"ERA": 2.5579,
"WHIP": 1.0105,
"ER_per_IP": 0.28421,
"H_per_IP": 0.66316,
"BB_per_IP": 0.34737,
"SO_per_IP": 0.88421,
"HR_per_IP": 0.18947
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 19.0,
"R": 21.0,
"H": 45.0,
"BB": 15.0,
"SO": 50.0,
"HR": 12.0,
"BF": 248.0,
"Pitches": 968.0
},
"per_game": {
"IP": 6.1,
"ER": 1.9,
"R": 2.1,
"H": 4.5,
"BB": 1.5,
"SO": 5.0,
"HR": 1.2,
"BF": 24.8,
"Pitches": 96.8
},
"rates": {
"ERA": 2.7581,
"WHIP": 0.9677,
"ER_per_IP": 0.30645,
"H_per_IP": 0.72581,
"BB_per_IP": 0.24194,
"SO_per_IP": 0.80645,
"HR_per_IP": 0.19355
}
},
"season": {
"games": 31,
"totals": {
"IP": 194.1,
"ER": 72.0,
"R": 76.0,
"H": 162.0,
"BB": 53.0,
"SO": 154.0,
"HR": 28.0,
"BF": 786.0,
"Pitches": 2938.0
},
"per_game": {
"IP": 6.1,
"ER": 2.3226,
"R": 2.4516,
"H": 5.2258,
"BB": 1.7097,
"SO": 4.9677,
"HR": 0.9032,
"BF": 25.3548,
"Pitches": 94.7742
},
"rates": {
"ERA": 3.3345,
"WHIP": 1.1063,
"ER_per_IP": 0.3705,
"H_per_IP": 0.83362,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.79245,
"HR_per_IP": 0.14408
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.138,
"predicted_H": 4.787,
"predicted_BB": 1.946,
"predicted_SO": 5.397,
"predicted_HR": 1.122,
"predicted_ERA": 3.0387,
"predicted_WHIP": 1.063
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.138,
"final": 2.899,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.787,
"final": 6.1001,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.946,
"final": 1.9681,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.397,
"final": 5.6434,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.122,
"final": 0.6635,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0387,
"final": 3.0387,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.063,
"final": 1.063,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 19,
"H": 45,
"BB": 15,
"SO": 50,
"HR": 12,
"ERA": 2.7580645161290325,
"WHIP": 0.967741935483871,
"K9": 7.258064516129032,
"HR9": 1.7419354838709677,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.794318335748488,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608379",
"player_name": "Michael Wacha",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 160,
"wins": 68,
"losses": 92,
"win_pct": 0.425,
"runs_scored": 682.0,
"runs_allowed": 797.0,
"run_differential": -115.0,
"run_differential_per_game": -0.7188,
"avg_runs_scored": 4.2625,
"avg_runs_allowed": 4.9813,
"offense_index": 0.9509,
"defense_index": 0.8999,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 6.9,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.2569
},
"opponent": {
"team": "CLE",
"games": 160,
"wins": 84,
"losses": 76,
"win_pct": 0.525,
"runs_scored": 665.0,
"runs_allowed": 659.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.1188,
"offense_index": 0.9272,
"defense_index": 1.0884,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1309
},
"edges": {
"quality_edge": -0.3878,
"offense_edge": -0.0491,
"opponent_offense_edge": -0.0728,
"defense_strength": -0.1001,
"opponent_defense_weakness": -0.0884,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.9844,
"run_prevention": 1.0178,
"strikeout": 0.9942
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608379",
"profile": {
"available": true,
"pitcher_id": "608379",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 708.0,
"k_percent": 19.6,
"bb_percent": 6.7,
"woba": 0.3,
"xwoba": 0.307,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 36.4,
"avg_best_speed": 77.1021,
"avg_hyper_speed": 93.5667,
"whiff_percent": 21.8,
"swing_percent": 48.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1408,
"command_and_miss": -0.2043,
"regression_edge": -0.2,
"xwoba_edge": 0.1143,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.2143,
"whiff_edge": -0.4857,
"bb_edge": 0.6,
"pitch_design_score": -0.1607
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608379",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 86.9953545090726,
"release_spin_rate": 1981.837302341622,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 86.9953545090726,
"release_spin_rate": 1981.837302341622,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.9954,
"release_spin_rate": 1981.8373,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1607,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1475,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0071,
"sample_weight": 1.0,
"run_prevention_factor": 1.0006,
"strikeout_factor": 0.9669,
"walk_factor": 0.952,
"homer_factor": 0.9844,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608379",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0006,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0006,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.952,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9844,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9669,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 29,
"Pitches": 113,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_COL@CHW | away | Jose Quintana | Jose Quintana | True | 4.0 | 3.0 | -3 | 4 | 2 | -2 | 7/2 | 4/2 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.4,
"WHIP": 1.511111111111111,
"IP": 45.0,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 4.5,
"recent_avg_IP": 4.133,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5107,
"sample_weight": 0.716,
"run_prevention_factor": 1.0434,
"strikeout_factor": 0.9378,
"walk_factor": 0.9986,
"homer_factor": 1.0436,
"regression_flag": "neutral",
"k_percent": 11.1,
"bb_percent": 9.0,
"woba": 0.369,
"xwoba": 0.359,
"barrel_percent": 9.5,
"hard_hit_percent": 34.2,
"whiff_percent": 20.9
},
"espn_rank": {
"rank": 293,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "500779",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 16.0,
"R": 17.0,
"H": 28.0,
"BB": 7.0,
"SO": 10.0,
"HR": 3.0,
"BF": 94.0,
"Pitches": 344.0
},
"per_game": {
"IP": 4.0,
"ER": 3.2,
"R": 3.4,
"H": 5.6,
"BB": 1.4,
"SO": 2.0,
"HR": 0.6,
"BF": 18.8,
"Pitches": 68.8
},
"rates": {
"ERA": 6.9677,
"WHIP": 1.6935,
"ER_per_IP": 0.77419,
"H_per_IP": 1.35484,
"BB_per_IP": 0.33871,
"SO_per_IP": 0.48387,
"HR_per_IP": 0.14516
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 27.0,
"R": 30.0,
"H": 50.0,
"BB": 18.0,
"SO": 22.0,
"HR": 8.0,
"BF": 199.0,
"Pitches": 757.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 3.0,
"H": 5.0,
"BB": 1.8,
"SO": 2.2,
"HR": 0.8,
"BF": 19.9,
"Pitches": 75.7
},
"rates": {
"ERA": 5.4,
"WHIP": 1.5111,
"ER_per_IP": 0.6,
"H_per_IP": 1.11111,
"BB_per_IP": 0.4,
"SO_per_IP": 0.48889,
"HR_per_IP": 0.17778
}
},
"season": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 27.0,
"R": 30.0,
"H": 50.0,
"BB": 18.0,
"SO": 22.0,
"HR": 8.0,
"BF": 199.0,
"Pitches": 757.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 3.0,
"H": 5.0,
"BB": 1.8,
"SO": 2.2,
"HR": 0.8,
"BF": 19.9,
"Pitches": 75.7
},
"rates": {
"ERA": 5.4,
"WHIP": 1.5111,
"ER_per_IP": 0.6,
"H_per_IP": 1.11111,
"BB_per_IP": 0.4,
"SO_per_IP": 0.48889,
"HR_per_IP": 0.17778
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.741,
"predicted_H": 4.994,
"predicted_BB": 1.594,
"predicted_SO": 2.738,
"predicted_HR": 0.671,
"predicted_ERA": 5.7286,
"predicted_WHIP": 1.5301
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.741,
"final": 3.8498,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.994,
"final": 5.9786,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.594,
"final": 2.7749,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.738,
"final": 4.3391,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.671,
"final": 0.3417,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7286,
"final": 5.7286,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5301,
"final": 1.5301,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 27,
"H": 50,
"BB": 18,
"SO": 22,
"HR": 8,
"ERA": 5.4,
"WHIP": 1.511111111111111,
"K9": 4.4,
"HR9": 1.6,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 1.1051203070746527,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 4.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "500779",
"player_name": "Jose Quintana",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 160,
"wins": 57,
"losses": 103,
"win_pct": 0.3563,
"runs_scored": 741.0,
"runs_allowed": 934.0,
"run_differential": -193.0,
"run_differential_per_game": -1.2063,
"avg_runs_scored": 4.6312,
"avg_runs_allowed": 5.8375,
"offense_index": 1.0331,
"defense_index": 0.7679,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.1,
"run_differential": -23.0
},
"available": true,
"quality_score": -0.3752
},
"opponent": {
"team": "CHW",
"games": 160,
"wins": 83,
"losses": 77,
"win_pct": 0.5188,
"runs_scored": 766.0,
"runs_allowed": 709.0,
"run_differential": 57.0,
"run_differential_per_game": 0.3563,
"avg_runs_scored": 4.7875,
"avg_runs_allowed": 4.4313,
"offense_index": 1.068,
"defense_index": 1.0116,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.0947
},
"edges": {
"quality_edge": -0.4699,
"offense_edge": 0.0331,
"opponent_offense_edge": 0.068,
"defense_strength": -0.2321,
"opponent_defense_weakness": -0.0116,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9715,
"run_prevention": 1.0576,
"strikeout": 0.9805
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "500779",
"profile": {
"available": true,
"pitcher_id": "500779",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 179.0,
"k_percent": 11.1,
"bb_percent": 9.0,
"woba": 0.369,
"xwoba": 0.359,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 34.2,
"avg_best_speed": 78.3903,
"avg_hyper_speed": 93.4268,
"whiff_percent": 20.9,
"swing_percent": 47.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8693,
"command_and_miss": -0.9107,
"regression_edge": 0.2857,
"xwoba_edge": -1.3714,
"barrel_edge": -0.5111,
"hard_hit_edge": 0.5286,
"whiff_edge": -0.6143,
"bb_edge": 0.025,
"pitch_design_score": -0.2274
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "500779",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 85.80290690633534,
"release_spin_rate": 2006.2347809412474,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 85.80290690633534,
"release_spin_rate": 2006.2347809412474,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.8029,
"release_spin_rate": 2006.2348,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2274,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6245,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.5107,
"sample_weight": 0.716,
"run_prevention_factor": 1.0434,
"strikeout_factor": 0.9378,
"walk_factor": 0.9986,
"homer_factor": 1.0436,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "500779",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0311,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0311,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.999,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0312,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9555,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_COL@CHW | home | Davis Martin | Davis Martin | True | 5.0 | 0.2 | -13 | 0 | 2 | 2 | 1/3 | 0/1 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8394495412844036,
"WHIP": 1.2935779816513762,
"IP": 145.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.185,
"recent_avg_IP": 3.6,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2615,
"sample_weight": 1.0,
"run_prevention_factor": 1.0222,
"strikeout_factor": 0.9771,
"walk_factor": 0.966,
"homer_factor": 1.0427,
"regression_flag": "neutral",
"k_percent": 19.8,
"bb_percent": 7.4,
"woba": 0.318,
"xwoba": 0.33,
"barrel_percent": 6.5,
"hard_hit_percent": 44.7,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 55,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663436",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 5.0,
"R": 7.0,
"H": 18.0,
"BB": 7.0,
"SO": 13.0,
"HR": 4.0,
"BF": 91.0,
"Pitches": 324.0
},
"per_game": {
"IP": 4.1,
"ER": 1.0,
"R": 1.4,
"H": 3.6,
"BB": 1.4,
"SO": 2.6,
"HR": 0.8,
"BF": 18.2,
"Pitches": 64.8
},
"rates": {
"ERA": 2.0149,
"WHIP": 1.1194,
"ER_per_IP": 0.22388,
"H_per_IP": 0.80597,
"BB_per_IP": 0.31343,
"SO_per_IP": 0.58209,
"HR_per_IP": 0.1791
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 24.0,
"R": 27.0,
"H": 45.0,
"BB": 14.0,
"SO": 29.0,
"HR": 8.0,
"BF": 193.0,
"Pitches": 717.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.7,
"H": 4.5,
"BB": 1.4,
"SO": 2.9,
"HR": 0.8,
"BF": 19.3,
"Pitches": 71.7
},
"rates": {
"ERA": 4.8,
"WHIP": 1.3111,
"ER_per_IP": 0.53333,
"H_per_IP": 1.0,
"BB_per_IP": 0.31111,
"SO_per_IP": 0.64444,
"HR_per_IP": 0.17778
}
},
"season": {
"games": 28,
"totals": {
"IP": 145.1,
"ER": 62.0,
"R": 65.0,
"H": 143.0,
"BB": 45.0,
"SO": 121.0,
"HR": 14.0,
"BF": 610.0,
"Pitches": 2324.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2143,
"R": 2.3214,
"H": 5.1071,
"BB": 1.6071,
"SO": 4.3214,
"HR": 0.5,
"BF": 21.7857,
"Pitches": 83.0
},
"rates": {
"ERA": 3.8394,
"WHIP": 1.2936,
"ER_per_IP": 0.42661,
"H_per_IP": 0.98394,
"BB_per_IP": 0.30963,
"SO_per_IP": 0.83257,
"HR_per_IP": 0.09633
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.853,
"predicted_H": 4.33,
"predicted_BB": 1.515,
"predicted_SO": 3.277,
"predicted_HR": 0.753,
"predicted_ERA": 3.5466,
"predicted_WHIP": 1.2428
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.853,
"final": 1.0858,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.33,
"final": 2.9514,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.515,
"final": 0.8878,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.277,
"final": 3.9903,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.753,
"final": 0.4413,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5466,
"final": 3.5466,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2428,
"final": 1.2428,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 24,
"H": 45,
"BB": 14,
"SO": 29,
"HR": 8,
"ERA": 4.8,
"WHIP": 1.3111111111111111,
"K9": 5.8,
"HR9": 1.6,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.0326203070746527,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663436",
"player_name": "Davis Martin",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 160,
"wins": 83,
"losses": 77,
"win_pct": 0.5188,
"runs_scored": 766.0,
"runs_allowed": 709.0,
"run_differential": 57.0,
"run_differential_per_game": 0.3563,
"avg_runs_scored": 4.7875,
"avg_runs_allowed": 4.4313,
"offense_index": 1.068,
"defense_index": 1.0116,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.0947
},
"opponent": {
"team": "COL",
"games": 160,
"wins": 57,
"losses": 103,
"win_pct": 0.3563,
"runs_scored": 741.0,
"runs_allowed": 934.0,
"run_differential": -193.0,
"run_differential_per_game": -1.2063,
"avg_runs_scored": 4.6312,
"avg_runs_allowed": 5.8375,
"offense_index": 1.0331,
"defense_index": 0.7679,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.1,
"run_differential": -23.0
},
"available": true,
"quality_score": -0.3752
},
"edges": {
"quality_edge": 0.4699,
"offense_edge": 0.068,
"opponent_offense_edge": 0.0331,
"defense_strength": 0.0116,
"opponent_defense_weakness": 0.2321,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0178,
"run_prevention": 0.9806,
"strikeout": 1.0114
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663436",
"profile": {
"available": true,
"pitcher_id": "663436",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 555.0,
"k_percent": 19.8,
"bb_percent": 7.4,
"woba": 0.318,
"xwoba": 0.33,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 44.7,
"avg_best_speed": 79.6543,
"avg_hyper_speed": 94.8844,
"whiff_percent": 23.4,
"swing_percent": 48.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.339,
"command_and_miss": -0.1464,
"regression_edge": -0.3429,
"xwoba_edge": -0.5429,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.9714,
"whiff_edge": -0.2571,
"bb_edge": 0.425,
"pitch_design_score": 0.0085
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663436",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 51,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 51,
"pitch_usage": 0.0,
"release_speed": 90.01624850726196,
"release_spin_rate": 2480.5211487507763,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 51,
"pitch_usage": 0.0,
"release_speed": 90.01624850726196,
"release_spin_rate": 2480.5211487507763,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.0162,
"release_spin_rate": 2480.5211,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0085,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0608,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2615,
"sample_weight": 1.0,
"run_prevention_factor": 1.0222,
"strikeout_factor": 0.9771,
"walk_factor": 0.966,
"homer_factor": 1.0427,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663436",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0222,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0222,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0427,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9771,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -13 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_HOU@OAK | away | Hayden Wesneski | Hayden Wesneski | True | 5.1 | 7.0 | 5 | 3 | 1 | -2 | 2/6 | 1/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5,
"WHIP": 1.1481481481481481,
"IP": 54.0,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 5.4,
"recent_avg_IP": 5.267,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0206,
"sample_weight": 0.784,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.9736,
"walk_factor": 0.9937,
"homer_factor": 0.9842,
"regression_flag": "neutral",
"k_percent": 18.7,
"bb_percent": 8.7,
"woba": 0.288,
"xwoba": 0.304,
"barrel_percent": 5.7,
"hard_hit_percent": 40.1,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 224,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669713",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 8.0,
"R": 12.0,
"H": 19.0,
"BB": 9.0,
"SO": 19.0,
"HR": 2.0,
"BF": 106.0,
"Pitches": 404.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 2.4,
"H": 3.8,
"BB": 1.8,
"SO": 3.8,
"HR": 0.4,
"BF": 21.2,
"Pitches": 80.8
},
"rates": {
"ERA": 2.7342,
"WHIP": 1.0633,
"ER_per_IP": 0.3038,
"H_per_IP": 0.72152,
"BB_per_IP": 0.34177,
"SO_per_IP": 0.72152,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 21.0,
"R": 25.0,
"H": 43.0,
"BB": 19.0,
"SO": 41.0,
"HR": 4.0,
"BF": 219.0,
"Pitches": 816.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.5,
"H": 4.3,
"BB": 1.9,
"SO": 4.1,
"HR": 0.4,
"BF": 21.9,
"Pitches": 81.6
},
"rates": {
"ERA": 3.5,
"WHIP": 1.1481,
"ER_per_IP": 0.38889,
"H_per_IP": 0.7963,
"BB_per_IP": 0.35185,
"SO_per_IP": 0.75926,
"HR_per_IP": 0.07407
}
},
"season": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 21.0,
"R": 25.0,
"H": 43.0,
"BB": 19.0,
"SO": 41.0,
"HR": 4.0,
"BF": 219.0,
"Pitches": 816.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.5,
"H": 4.3,
"BB": 1.9,
"SO": 4.1,
"HR": 0.4,
"BF": 21.9,
"Pitches": 81.6
},
"rates": {
"ERA": 3.5,
"WHIP": 1.1481,
"ER_per_IP": 0.38889,
"H_per_IP": 0.7963,
"BB_per_IP": 0.35185,
"SO_per_IP": 0.75926,
"HR_per_IP": 0.07407
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.126,
"predicted_H": 4.43,
"predicted_BB": 1.906,
"predicted_SO": 4.288,
"predicted_HR": 0.531,
"predicted_ERA": 3.5868,
"predicted_WHIP": 1.1879
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.126,
"final": 2.555,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.43,
"final": 3.2373,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.906,
"final": 1.4613,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.288,
"final": 3.6558,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.531,
"final": 0.2704,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5868,
"final": 3.5868,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1879,
"final": 1.1879,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 21,
"H": 43,
"BB": 19,
"SO": 41,
"HR": 4,
"ERA": 3.5000000000000004,
"WHIP": 1.1481481481481484,
"K9": 6.833333333333334,
"HR9": 0.6666666666666667,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.8822962330005788,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669713",
"player_name": "Hayden Wesneski",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 712.0,
"runs_allowed": 764.0,
"run_differential": -52.0,
"run_differential_per_game": -0.325,
"avg_runs_scored": 4.45,
"avg_runs_allowed": 4.775,
"offense_index": 0.9917,
"defense_index": 0.9397,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0801
},
"opponent": {
"team": "OAK",
"games": 160,
"wins": 64,
"losses": 96,
"win_pct": 0.4,
"runs_scored": 697.0,
"runs_allowed": 915.0,
"run_differential": -218.0,
"run_differential_per_game": -1.3625,
"avg_runs_scored": 4.3563,
"avg_runs_allowed": 5.7188,
"offense_index": 0.9708,
"defense_index": 0.7846,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.6,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.322
},
"edges": {
"quality_edge": 0.2419,
"offense_edge": -0.0083,
"opponent_offense_edge": -0.0292,
"defense_strength": -0.0603,
"opponent_defense_weakness": 0.2154,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.009,
"run_prevention": 0.9893,
"strikeout": 1.0096
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669713",
"profile": {
"available": true,
"pitcher_id": "669713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 196.0,
"k_percent": 18.7,
"bb_percent": 8.7,
"woba": 0.288,
"xwoba": 0.304,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 40.1,
"avg_best_speed": 75.4929,
"avg_hyper_speed": 94.0037,
"whiff_percent": 22.6,
"swing_percent": 48.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2924,
"command_and_miss": -0.3221,
"regression_edge": -0.4571,
"xwoba_edge": 0.2,
"barrel_edge": 0.3333,
"hard_hit_edge": -0.3143,
"whiff_edge": -0.3714,
"bb_edge": 0.1,
"pitch_design_score": -0.0994
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 88.08890165876376,
"release_spin_rate": 2309.2290178570775,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 88.08890165876376,
"release_spin_rate": 2309.2290178570775,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.0889,
"release_spin_rate": 2309.229,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0994,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7101,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0206,
"sample_weight": 0.784,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.9736,
"walk_factor": 0.9937,
"homer_factor": 0.9842,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669713",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9986,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9986,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9951,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9876,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9793,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 82,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260926_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_HOU@OAK | home | Jack Perkins | Jack Perkins | True | 4.2 | 5.0 | 1 | 3 | 6 | 3 | 5/5 | 2/3 | 3/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.896551724137931,
"WHIP": 1.4482758620689655,
"IP": 116.0,
"games_started": null,
"games_pitched": 36,
"role_avg_IP": 4.771,
"recent_avg_IP": 5.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0739,
"sample_weight": 1.0,
"run_prevention_factor": 0.9937,
"strikeout_factor": 1.0251,
"walk_factor": 1.002,
"homer_factor": 1.0157,
"regression_flag": "positive_pitcher_regression",
"k_percent": 25.2,
"bb_percent": 9.2,
"woba": 0.347,
"xwoba": 0.309,
"barrel_percent": 8.5,
"hard_hit_percent": 36.9,
"whiff_percent": 26.4
},
"espn_rank": {
"rank": 822,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678022",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 36,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 9.0,
"R": 11.0,
"H": 24.0,
"BB": 10.0,
"SO": 27.0,
"HR": 3.0,
"BF": 108.0,
"Pitches": 414.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.2,
"H": 4.8,
"BB": 2.0,
"SO": 5.4,
"HR": 0.6,
"BF": 21.6,
"Pitches": 82.8
},
"rates": {
"ERA": 3.1558,
"WHIP": 1.3247,
"ER_per_IP": 0.35065,
"H_per_IP": 0.93506,
"BB_per_IP": 0.38961,
"SO_per_IP": 1.05195,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 27.0,
"R": 32.0,
"H": 54.0,
"BB": 21.0,
"SO": 51.0,
"HR": 9.0,
"BF": 213.0,
"Pitches": 816.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 3.2,
"H": 5.4,
"BB": 2.1,
"SO": 5.1,
"HR": 0.9,
"BF": 21.3,
"Pitches": 81.6
},
"rates": {
"ERA": 5.0979,
"WHIP": 1.5734,
"ER_per_IP": 0.56643,
"H_per_IP": 1.13287,
"BB_per_IP": 0.44056,
"SO_per_IP": 1.06993,
"HR_per_IP": 0.18881
}
},
"season": {
"games": 36,
"totals": {
"IP": 116.0,
"ER": 76.0,
"R": 83.0,
"H": 120.0,
"BB": 48.0,
"SO": 131.0,
"HR": 20.0,
"BF": 519.0,
"Pitches": 2007.0
},
"per_game": {
"IP": 3.1,
"ER": 2.1111,
"R": 2.3056,
"H": 3.3333,
"BB": 1.3333,
"SO": 3.6389,
"HR": 0.5556,
"BF": 14.4167,
"Pitches": 55.75
},
"rates": {
"ERA": 5.8966,
"WHIP": 1.4483,
"ER_per_IP": 0.65517,
"H_per_IP": 1.03448,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.12931,
"HR_per_IP": 0.17241
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.258,
"predicted_H": 4.693,
"predicted_BB": 1.88,
"predicted_SO": 4.867,
"predicted_HR": 0.703,
"predicted_ERA": 4.4128,
"predicted_WHIP": 1.4275
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4015,
"form_weight": 0.5985,
"form_reliability": 0.878,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.258,
"final": 2.1544,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.693,
"final": 4.0132,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.88,
"final": 1.9282,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.867,
"final": 4.1173,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.703,
"final": 0.8223,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4128,
"final": 4.4128,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4275,
"final": 1.4275,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 27,
"H": 54,
"BB": 21,
"SO": 51,
"HR": 9,
"ERA": 5.097902097902098,
"WHIP": 1.5734265734265735,
"K9": 9.62937062937063,
"HR9": 1.6993006993006994,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.0726921796465254,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 36.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.878,
"prior_weight": 0.122
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678022",
"player_name": "Jack Perkins",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 160,
"wins": 64,
"losses": 96,
"win_pct": 0.4,
"runs_scored": 697.0,
"runs_allowed": 915.0,
"run_differential": -218.0,
"run_differential_per_game": -1.3625,
"avg_runs_scored": 4.3563,
"avg_runs_allowed": 5.7188,
"offense_index": 0.9708,
"defense_index": 0.7846,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.6,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.322
},
"opponent": {
"team": "HOU",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 712.0,
"runs_allowed": 764.0,
"run_differential": -52.0,
"run_differential_per_game": -0.325,
"avg_runs_scored": 4.45,
"avg_runs_allowed": 4.775,
"offense_index": 0.9917,
"defense_index": 0.9397,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0801
},
"edges": {
"quality_edge": -0.2419,
"offense_edge": -0.0292,
"opponent_offense_edge": -0.0083,
"defense_strength": -0.2154,
"opponent_defense_weakness": 0.0603,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9842,
"run_prevention": 1.0323,
"strikeout": 0.9934
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678022",
"profile": {
"available": true,
"pitcher_id": "678022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 462.0,
"k_percent": 25.2,
"bb_percent": 9.2,
"woba": 0.347,
"xwoba": 0.309,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 36.9,
"avg_best_speed": 78.2613,
"avg_hyper_speed": 93.5291,
"whiff_percent": 26.4,
"swing_percent": 48.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1943,
"command_and_miss": 0.2607,
"regression_edge": 1.0857,
"xwoba_edge": 0.0571,
"barrel_edge": -0.2889,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.1714,
"bb_edge": -0.025,
"pitch_design_score": 0.0793
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 91.28030678673174,
"release_spin_rate": 2236.0689533094624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 91.28030678673174,
"release_spin_rate": 2236.0689533094624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.2803,
"release_spin_rate": 2236.069,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0793,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5665,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0739,
"sample_weight": 1.0,
"run_prevention_factor": 0.9937,
"strikeout_factor": 1.0251,
"walk_factor": 1.002,
"homer_factor": 1.0157,
"woba_minus_xwoba": 0.038,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "678022",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9937,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9937,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0157,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0251,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAA@SEA | away | Ryan Johnson | Ryan Johnson | True | 5.1 | 5.0 | -1 | 1 | 4 | 3 | 5/7 | 0/4 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.926315789473684,
"WHIP": 1.3473684210526315,
"IP": 95.0,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.533,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3272,
"sample_weight": 1.0,
"run_prevention_factor": 1.0278,
"strikeout_factor": 0.9709,
"walk_factor": 1.008,
"homer_factor": 1.0559,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 9.5,
"woba": 0.332,
"xwoba": 0.337,
"barrel_percent": 9.7,
"hard_hit_percent": 36.0,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 434,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696270",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 9.0,
"R": 9.0,
"H": 24.0,
"BB": 8.0,
"SO": 26.0,
"HR": 2.0,
"BF": 115.0,
"Pitches": 461.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 4.8,
"BB": 1.6,
"SO": 5.2,
"HR": 0.4,
"BF": 23.0,
"Pitches": 92.2
},
"rates": {
"ERA": 2.9277,
"WHIP": 1.1566,
"ER_per_IP": 0.3253,
"H_per_IP": 0.86747,
"BB_per_IP": 0.28916,
"SO_per_IP": 0.93976,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 18.0,
"R": 18.0,
"H": 42.0,
"BB": 22.0,
"SO": 42.0,
"HR": 7.0,
"BF": 221.0,
"Pitches": 884.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 4.2,
"BB": 2.2,
"SO": 4.2,
"HR": 0.7,
"BF": 22.1,
"Pitches": 88.4
},
"rates": {
"ERA": 3.0375,
"WHIP": 1.2,
"ER_per_IP": 0.3375,
"H_per_IP": 0.7875,
"BB_per_IP": 0.4125,
"SO_per_IP": 0.7875,
"HR_per_IP": 0.13125
}
},
"season": {
"games": 21,
"totals": {
"IP": 95.0,
"ER": 52.0,
"R": 57.0,
"H": 89.0,
"BB": 39.0,
"SO": 76.0,
"HR": 18.0,
"BF": 410.0,
"Pitches": 1636.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4762,
"R": 2.7143,
"H": 4.2381,
"BB": 1.8571,
"SO": 3.619,
"HR": 0.8571,
"BF": 19.5238,
"Pitches": 77.9048
},
"rates": {
"ERA": 4.9263,
"WHIP": 1.3474,
"ER_per_IP": 0.54737,
"H_per_IP": 0.93684,
"BB_per_IP": 0.41053,
"SO_per_IP": 0.8,
"HR_per_IP": 0.18947
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.143,
"predicted_H": 4.696,
"predicted_BB": 1.93,
"predicted_SO": 4.67,
"predicted_HR": 0.655,
"predicted_ERA": 3.6074,
"predicted_WHIP": 1.2393
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.143,
"final": 1.6501,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.696,
"final": 4.8271,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.93,
"final": 1.0977,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.67,
"final": 4.3811,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.655,
"final": 0.3725,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6074,
"final": 3.6074,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2393,
"final": 1.2393,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 18,
"H": 42,
"BB": 22,
"SO": 42,
"HR": 7,
"ERA": 3.0375,
"WHIP": 1.2000000000000002,
"K9": 7.0875,
"HR9": 1.1812500000000001,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.831561279296875,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696270",
"player_name": "Ryan Johnson",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 160,
"wins": 62,
"losses": 98,
"win_pct": 0.3875,
"runs_scored": 648.0,
"runs_allowed": 737.0,
"run_differential": -89.0,
"run_differential_per_game": -0.5563,
"avg_runs_scored": 4.05,
"avg_runs_allowed": 4.6063,
"offense_index": 0.9026,
"defense_index": 0.9741,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1638
},
"opponent": {
"team": "SEA",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 649.0,
"runs_allowed": 715.0,
"run_differential": -66.0,
"run_differential_per_game": -0.4125,
"avg_runs_scored": 4.0563,
"avg_runs_allowed": 4.4688,
"offense_index": 0.904,
"defense_index": 1.0041,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.5,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1174
},
"edges": {
"quality_edge": -0.0464,
"offense_edge": -0.0974,
"opponent_offense_edge": -0.096,
"defense_strength": -0.0259,
"opponent_defense_weakness": -0.0041,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0012,
"run_prevention": 0.9895,
"strikeout": 1.0063
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696270",
"profile": {
"available": true,
"pitcher_id": "696270",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 362.0,
"k_percent": 18.5,
"bb_percent": 9.5,
"woba": 0.332,
"xwoba": 0.337,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 36.0,
"avg_best_speed": 75.8902,
"avg_hyper_speed": 93.5365,
"whiff_percent": 23.6,
"swing_percent": 46.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3857,
"command_and_miss": -0.325,
"regression_edge": -0.1429,
"xwoba_edge": -0.7429,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.2714,
"whiff_edge": -0.2286,
"bb_edge": -0.1,
"pitch_design_score": -0.1556
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696270",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.08612475150535,
"release_spin_rate": 2294.5542445027313,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.08612475150535,
"release_spin_rate": 2294.5542445027313,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.0861,
"release_spin_rate": 2294.5542,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1556,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1112,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3272,
"sample_weight": 1.0,
"run_prevention_factor": 1.0278,
"strikeout_factor": 0.9709,
"walk_factor": 1.008,
"homer_factor": 1.0559,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "696270",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0278,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0278,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.008,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0559,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9709,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260926_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAA@SEA | home | Kade Anderson | Kade Anderson | True | 5.1 | 3.1 | -6 | 1 | 0 | -1 | 2/4 | 2/1 | 8/4 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.175257731958762,
"WHIP": 1.2061855670103092,
"IP": 32.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.389,
"recent_avg_IP": 5.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0083,
"sample_weight": 0.45,
"run_prevention_factor": 1.0007,
"strikeout_factor": 0.9941,
"walk_factor": 0.973,
"homer_factor": 1.0192,
"regression_flag": "neutral",
"k_percent": 21.4,
"bb_percent": 6.1,
"woba": 0.308,
"xwoba": 0.308,
"barrel_percent": 8.4,
"hard_hit_percent": 42.1,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 278,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "807739",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 12.0,
"R": 12.0,
"H": 26.0,
"BB": 6.0,
"SO": 23.0,
"HR": 2.0,
"BF": 109.0,
"Pitches": 401.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 5.2,
"BB": 1.2,
"SO": 4.6,
"HR": 0.4,
"BF": 21.8,
"Pitches": 80.2
},
"rates": {
"ERA": 4.05,
"WHIP": 1.2,
"ER_per_IP": 0.45,
"H_per_IP": 0.975,
"BB_per_IP": 0.225,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 32.1,
"ER": 15.0,
"R": 15.0,
"H": 31.0,
"BB": 8.0,
"SO": 28.0,
"HR": 4.0,
"BF": 131.0,
"Pitches": 482.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.5,
"H": 5.1667,
"BB": 1.3333,
"SO": 4.6667,
"HR": 0.6667,
"BF": 21.8333,
"Pitches": 80.3333
},
"rates": {
"ERA": 4.1753,
"WHIP": 1.2062,
"ER_per_IP": 0.46392,
"H_per_IP": 0.95876,
"BB_per_IP": 0.24742,
"SO_per_IP": 0.86598,
"HR_per_IP": 0.12371
}
},
"season": {
"games": 6,
"totals": {
"IP": 32.1,
"ER": 15.0,
"R": 15.0,
"H": 31.0,
"BB": 8.0,
"SO": 28.0,
"HR": 4.0,
"BF": 131.0,
"Pitches": 482.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.5,
"H": 5.1667,
"BB": 1.3333,
"SO": 4.6667,
"HR": 0.6667,
"BF": 21.8333,
"Pitches": 80.3333
},
"rates": {
"ERA": 4.1753,
"WHIP": 1.2062,
"ER_per_IP": 0.46392,
"H_per_IP": 0.95876,
"BB_per_IP": 0.24742,
"SO_per_IP": 0.86598,
"HR_per_IP": 0.12371
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.56,
"predicted_H": 5.214,
"predicted_BB": 1.583,
"predicted_SO": 4.779,
"predicted_HR": 0.598,
"predicted_ERA": 4.3192,
"predicted_WHIP": 1.2744
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.56,
"final": 1.7144,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.214,
"final": 3.4719,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.583,
"final": 1.809,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.779,
"final": 6.5249,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.598,
"final": 0.2739,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3192,
"final": 4.3192,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2744,
"final": 1.2744,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 32.1,
"ER": 15,
"H": 31,
"BB": 8,
"SO": 28,
"HR": 4,
"ERA": 4.175257731958763,
"WHIP": 1.2061855670103094,
"K9": 7.7938144329896915,
"HR9": 1.1134020618556704,
"games_pitched": 6,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9597136633174936,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "807739",
"player_name": "Kade Anderson",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 160,
"wins": 74,
"losses": 86,
"win_pct": 0.4625,
"runs_scored": 649.0,
"runs_allowed": 715.0,
"run_differential": -66.0,
"run_differential_per_game": -0.4125,
"avg_runs_scored": 4.0563,
"avg_runs_allowed": 4.4688,
"offense_index": 0.904,
"defense_index": 1.0041,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.5,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1174
},
"opponent": {
"team": "LAA",
"games": 160,
"wins": 62,
"losses": 98,
"win_pct": 0.3875,
"runs_scored": 648.0,
"runs_allowed": 737.0,
"run_differential": -89.0,
"run_differential_per_game": -0.5563,
"avg_runs_scored": 4.05,
"avg_runs_allowed": 4.6063,
"offense_index": 0.9026,
"defense_index": 0.9741,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1638
},
"edges": {
"quality_edge": 0.0464,
"offense_edge": -0.096,
"opponent_offense_edge": -0.0974,
"defense_strength": 0.0041,
"opponent_defense_weakness": 0.0259,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0059,
"run_prevention": 0.9817,
"strikeout": 1.0092
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "807739",
"profile": {
"available": true,
"pitcher_id": "807739",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 107.0,
"k_percent": 21.4,
"bb_percent": 6.1,
"woba": 0.308,
"xwoba": 0.308,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 42.1,
"avg_best_speed": 76.2477,
"avg_hyper_speed": 94.0143,
"whiff_percent": 23.5,
"swing_percent": 54.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0367,
"command_and_miss": 0.0264,
"regression_edge": 0.0,
"xwoba_edge": 0.0857,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.6,
"whiff_edge": -0.2429,
"bb_edge": 0.75,
"pitch_design_score": -0.0604
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "807739",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 88.78642537896546,
"release_spin_rate": 2094.986479780848,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 88.78642537896546,
"release_spin_rate": 2094.986479780848,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.7864,
"release_spin_rate": 2094.9865,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0604,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4311,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0083,
"sample_weight": 0.45,
"run_prevention_factor": 1.0007,
"strikeout_factor": 0.9941,
"walk_factor": 0.973,
"homer_factor": 1.0192,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "807739",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0003,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0003,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9879,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0086,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9973,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAD@SF | away | Blake Snell | Blake Snell | True | 5.2 | 4.0 | -5 | 0 | 1 | 1 | 1/5 | 0/0 | 5/3 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 1.8620689655172415,
"WHIP": 1.0862068965517242,
"IP": 38.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.833,
"recent_avg_IP": 4.733,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8549,
"sample_weight": 0.612,
"run_prevention_factor": 0.9273,
"strikeout_factor": 1.0762,
"walk_factor": 1.0135,
"homer_factor": 0.8289,
"regression_flag": "neutral",
"k_percent": 33.1,
"bb_percent": 10.2,
"woba": 0.237,
"xwoba": 0.228,
"barrel_percent": 1.1,
"hard_hit_percent": 15.9,
"whiff_percent": 35.9
},
"espn_rank": {
"rank": 122,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 38.2,
"season_ERA": 1.862,
"season_WHIP": 1.086,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605483",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 2.0,
"R": 2.0,
"H": 15.0,
"BB": 10.0,
"SO": 32.0,
"HR": 0.0,
"BF": 94.0,
"Pitches": 413.0
},
"per_game": {
"IP": 4.2,
"ER": 0.4,
"R": 0.4,
"H": 3.0,
"BB": 2.0,
"SO": 6.4,
"HR": 0.0,
"BF": 18.8,
"Pitches": 82.6
},
"rates": {
"ERA": 0.7606,
"WHIP": 1.0563,
"ER_per_IP": 0.08451,
"H_per_IP": 0.6338,
"BB_per_IP": 0.42254,
"SO_per_IP": 1.35211,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 38.2,
"ER": 8.0,
"R": 9.0,
"H": 26.0,
"BB": 16.0,
"SO": 52.0,
"HR": 0.0,
"BF": 157.0,
"Pitches": 664.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.125,
"H": 3.25,
"BB": 2.0,
"SO": 6.5,
"HR": 0.0,
"BF": 19.625,
"Pitches": 83.0
},
"rates": {
"ERA": 1.8621,
"WHIP": 1.0862,
"ER_per_IP": 0.2069,
"H_per_IP": 0.67241,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.34483,
"HR_per_IP": 0.0
}
},
"season": {
"games": 8,
"totals": {
"IP": 38.2,
"ER": 8.0,
"R": 9.0,
"H": 26.0,
"BB": 16.0,
"SO": 52.0,
"HR": 0.0,
"BF": 157.0,
"Pitches": 664.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.125,
"H": 3.25,
"BB": 2.0,
"SO": 6.5,
"HR": 0.0,
"BF": 19.625,
"Pitches": 83.0
},
"rates": {
"ERA": 1.8621,
"WHIP": 1.0862,
"ER_per_IP": 0.2069,
"H_per_IP": 0.67241,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.34483,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.311,
"predicted_H": 3.72,
"predicted_BB": 1.939,
"predicted_SO": 5.709,
"predicted_HR": 0.274,
"predicted_ERA": 2.4614,
"predicted_WHIP": 1.18
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.311,
"final": 0.6391,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.72,
"final": 2.326,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.939,
"final": 0.9453,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.709,
"final": 4.3207,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.274,
"final": 0.1336,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4614,
"final": 2.4614,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.18,
"final": 1.18,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 38.2,
"ER": 8,
"H": 26,
"BB": 16,
"SO": 52,
"HR": 0,
"ERA": 1.862068965517241,
"WHIP": 1.086206896551724,
"K9": 12.103448275862068,
"HR9": 0.0,
"games_pitched": 8,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-16T00:00:00"
},
"recent_form_boost": 0.6964804603313578,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 1,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605483",
"player_name": "Blake Snell",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 160,
"wins": 98,
"losses": 62,
"win_pct": 0.6125,
"runs_scored": 792.0,
"runs_allowed": 596.0,
"run_differential": 196.0,
"run_differential_per_game": 1.225,
"avg_runs_scored": 4.95,
"avg_runs_allowed": 3.725,
"offense_index": 1.1037,
"defense_index": 1.204,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.3159
},
"opponent": {
"team": "SF",
"games": 160,
"wins": 65,
"losses": 95,
"win_pct": 0.4062,
"runs_scored": 665.0,
"runs_allowed": 751.0,
"run_differential": -86.0,
"run_differential_per_game": -0.5375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.6937,
"offense_index": 0.9267,
"defense_index": 0.9555,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.2,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2156
},
"edges": {
"quality_edge": 0.5315,
"offense_edge": 0.1037,
"opponent_offense_edge": -0.0733,
"defense_strength": 0.204,
"opponent_defense_weakness": 0.0445,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0303,
"run_prevention": 0.9413,
"strikeout": 1.0218
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605483",
"profile": {
"available": true,
"pitcher_id": "605483",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 153.0,
"k_percent": 33.1,
"bb_percent": 10.2,
"woba": 0.237,
"xwoba": 0.228,
"sweet_spot_percent": 28.4,
"barrel_batted_rate": 1.1,
"hard_hit_percent": 15.9,
"avg_best_speed": 71.0562,
"avg_hyper_speed": 91.0663,
"whiff_percent": 35.9,
"swing_percent": 49.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.8965,
"command_and_miss": 1.1936,
"regression_edge": 0.2571,
"xwoba_edge": 2.3714,
"barrel_edge": 1.3556,
"hard_hit_edge": 2.5,
"whiff_edge": 1.5286,
"bb_edge": -0.275,
"pitch_design_score": -0.0156
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605483",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.58527815729902,
"release_spin_rate": 2351.694545988685,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.58527815729902,
"release_spin_rate": 2351.694545988685,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.5853,
"release_spin_rate": 2351.6945,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0156,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1116,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.8549,
"sample_weight": 0.612,
"run_prevention_factor": 0.9273,
"strikeout_factor": 1.0762,
"walk_factor": 1.0135,
"homer_factor": 0.8289,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605483",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9555,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9555,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0083,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8953,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0466,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 74,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260926_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_LAD@SF | home | Matt Wilkinson | Matt Wilkinson | True | 4.2 | 3.0 | -5 | 1 | 1 | 0 | 3/1 | 1/1 | 6/2 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 3.6486486486486487,
"WHIP": 1.0135135135135134,
"IP": 24.2,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 3.933,
"recent_avg_IP": 3.933,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0964,
"sample_weight": 0.45,
"run_prevention_factor": 0.9918,
"strikeout_factor": 0.9738,
"walk_factor": 0.9541,
"homer_factor": 0.9941,
"regression_flag": "neutral",
"k_percent": 18.2,
"bb_percent": 4.0,
"woba": 0.286,
"xwoba": 0.277,
"barrel_percent": 6.5,
"hard_hit_percent": 42.9,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 424,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683363",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.0,
"ER": 6.0,
"R": 9.0,
"H": 13.0,
"BB": 4.0,
"SO": 16.0,
"HR": 3.0,
"BF": 74.0,
"Pitches": 291.0
},
"per_game": {
"IP": 3.2,
"ER": 1.2,
"R": 1.8,
"H": 2.6,
"BB": 0.8,
"SO": 3.2,
"HR": 0.6,
"BF": 14.8,
"Pitches": 58.2
},
"rates": {
"ERA": 2.8421,
"WHIP": 0.8947,
"ER_per_IP": 0.31579,
"H_per_IP": 0.68421,
"BB_per_IP": 0.21053,
"SO_per_IP": 0.84211,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 24.2,
"ER": 10.0,
"R": 13.0,
"H": 21.0,
"BB": 4.0,
"SO": 18.0,
"HR": 4.0,
"BF": 99.0,
"Pitches": 382.0
},
"per_game": {
"IP": 3.2,
"ER": 1.4286,
"R": 1.8571,
"H": 3.0,
"BB": 0.5714,
"SO": 2.5714,
"HR": 0.5714,
"BF": 14.1429,
"Pitches": 54.5714
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.0135,
"ER_per_IP": 0.40541,
"H_per_IP": 0.85135,
"BB_per_IP": 0.16216,
"SO_per_IP": 0.72973,
"HR_per_IP": 0.16216
}
},
"season": {
"games": 7,
"totals": {
"IP": 24.2,
"ER": 10.0,
"R": 13.0,
"H": 21.0,
"BB": 4.0,
"SO": 18.0,
"HR": 4.0,
"BF": 99.0,
"Pitches": 382.0
},
"per_game": {
"IP": 3.2,
"ER": 1.4286,
"R": 1.8571,
"H": 3.0,
"BB": 0.5714,
"SO": 2.5714,
"HR": 0.5714,
"BF": 14.1429,
"Pitches": 54.5714
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.0135,
"ER_per_IP": 0.40541,
"H_per_IP": 0.85135,
"BB_per_IP": 0.16216,
"SO_per_IP": 0.72973,
"HR_per_IP": 0.16216
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.62,
"predicted_H": 3.282,
"predicted_BB": 1.082,
"predicted_SO": 3.414,
"predicted_HR": 0.61,
"predicted_ERA": 3.6955,
"predicted_WHIP": 1.1062
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.62,
"final": 1.2938,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.282,
"final": 3.1337,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.082,
"final": 1.0389,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.414,
"final": 4.7744,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.61,
"final": 0.2891,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6955,
"final": 3.6955,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1062,
"final": 1.1062,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 24.2,
"ER": 10,
"H": 21,
"BB": 4,
"SO": 18,
"HR": 4,
"ERA": 3.6486486486486487,
"WHIP": 1.0135135135135134,
"K9": 6.5675675675675675,
"HR9": 1.4594594594594594,
"games_pitched": 7,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9142457500696182,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683363",
"player_name": "Matt Wilkinson",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.2,
"delta": -0.1333,
"percent_delta": -0.0308,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 160,
"wins": 65,
"losses": 95,
"win_pct": 0.4062,
"runs_scored": 665.0,
"runs_allowed": 751.0,
"run_differential": -86.0,
"run_differential_per_game": -0.5375,
"avg_runs_scored": 4.1562,
"avg_runs_allowed": 4.6937,
"offense_index": 0.9267,
"defense_index": 0.9555,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.2,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2156
},
"opponent": {
"team": "LAD",
"games": 160,
"wins": 98,
"losses": 62,
"win_pct": 0.6125,
"runs_scored": 792.0,
"runs_allowed": 596.0,
"run_differential": 196.0,
"run_differential_per_game": 1.225,
"avg_runs_scored": 4.95,
"avg_runs_allowed": 3.725,
"offense_index": 1.1037,
"defense_index": 1.204,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.3159
},
"edges": {
"quality_edge": -0.5315,
"offense_edge": -0.0733,
"opponent_offense_edge": 0.1037,
"defense_strength": -0.0445,
"opponent_defense_weakness": -0.204,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9733,
"run_prevention": 1.0476,
"strikeout": 0.9758
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683363",
"profile": {
"available": true,
"pitcher_id": "683363",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 81.0,
"k_percent": 18.2,
"bb_percent": 4.0,
"woba": 0.286,
"xwoba": 0.277,
"sweet_spot_percent": 29.9,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 42.9,
"avg_best_speed": 78.36,
"avg_hyper_speed": 93.9761,
"whiff_percent": 18.8,
"swing_percent": 44.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4996,
"command_and_miss": -0.3093,
"regression_edge": 0.2571,
"xwoba_edge": 0.9714,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.7143,
"whiff_edge": -0.9143,
"bb_edge": 1.275,
"pitch_design_score": -0.1358
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683363",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 56,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 56,
"pitch_usage": 0.0,
"release_speed": 87.43889451666871,
"release_spin_rate": 1987.095936949808,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 56,
"pitch_usage": 0.0,
"release_speed": 87.43889451666871,
"release_spin_rate": 1987.095936949808,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4389,
"release_spin_rate": 1987.0959,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1358,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9701,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0964,
"sample_weight": 0.45,
"run_prevention_factor": 0.9918,
"strikeout_factor": 0.9738,
"walk_factor": 0.9541,
"homer_factor": 0.9941,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683363",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9963,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9963,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9793,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9973,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9882,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260926_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_NYM@WAS | away | Jonah Tong | Jonah Tong | True | 5.0 | 5.0 | 0 | 3 | 1 | -2 | 5/3 | 2/1 | 6/9 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.207792207792208,
"WHIP": 1.3246753246753247,
"IP": 25.2,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.222,
"recent_avg_IP": 5.222,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1322,
"sample_weight": 0.45,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0041,
"walk_factor": 1.0207,
"homer_factor": 0.9695,
"regression_flag": "neutral",
"k_percent": 21.9,
"bb_percent": 11.4,
"woba": 0.286,
"xwoba": 0.284,
"barrel_percent": 5.3,
"hard_hit_percent": 36.0,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 614,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "804636",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 12.0,
"R": 15.0,
"H": 21.0,
"BB": 12.0,
"SO": 23.0,
"HR": 2.0,
"BF": 105.0,
"Pitches": 424.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 3.0,
"H": 4.2,
"BB": 2.4,
"SO": 4.6,
"HR": 0.4,
"BF": 21.0,
"Pitches": 84.8
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.4559,
"ER_per_IP": 0.52941,
"H_per_IP": 0.92647,
"BB_per_IP": 0.52941,
"SO_per_IP": 1.01471,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 25.2,
"ER": 12.0,
"R": 15.0,
"H": 21.0,
"BB": 13.0,
"SO": 25.0,
"HR": 2.0,
"BF": 114.0,
"Pitches": 452.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.5,
"H": 3.5,
"BB": 2.1667,
"SO": 4.1667,
"HR": 0.3333,
"BF": 19.0,
"Pitches": 75.3333
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.3247,
"ER_per_IP": 0.46753,
"H_per_IP": 0.81818,
"BB_per_IP": 0.50649,
"SO_per_IP": 0.97403,
"HR_per_IP": 0.07792
}
},
"season": {
"games": 6,
"totals": {
"IP": 25.2,
"ER": 12.0,
"R": 15.0,
"H": 21.0,
"BB": 13.0,
"SO": 25.0,
"HR": 2.0,
"BF": 114.0,
"Pitches": 452.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.5,
"H": 3.5,
"BB": 2.1667,
"SO": 4.1667,
"HR": 0.3333,
"BF": 19.0,
"Pitches": 75.3333
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.3247,
"ER_per_IP": 0.46753,
"H_per_IP": 0.81818,
"BB_per_IP": 0.50649,
"SO_per_IP": 0.97403,
"HR_per_IP": 0.07792
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.482,
"predicted_H": 4.527,
"predicted_BB": 2.203,
"predicted_SO": 4.678,
"predicted_HR": 0.551,
"predicted_ERA": 4.659,
"predicted_WHIP": 1.404
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.482,
"final": 3.3048,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.527,
"final": 4.7834,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.203,
"final": 2.093,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.678,
"final": 5.3946,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.551,
"final": 1.3364,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.659,
"final": 4.659,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.404,
"final": 1.404,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 25.2,
"ER": 12,
"H": 21,
"BB": 13,
"SO": 25,
"HR": 2,
"ERA": 4.207792207792208,
"WHIP": 1.3246753246753247,
"K9": 8.766233766233766,
"HR9": 0.7012987012987013,
"games_pitched": 6,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9712126715779305,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804636",
"player_name": "Jonah Tong",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 160,
"wins": 73,
"losses": 87,
"win_pct": 0.4562,
"runs_scored": 688.0,
"runs_allowed": 724.0,
"run_differential": -36.0,
"run_differential_per_game": -0.225,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.525,
"offense_index": 0.9568,
"defense_index": 0.9932,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0998
},
"opponent": {
"team": "WAS",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 814.0,
"runs_allowed": 804.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0625,
"avg_runs_scored": 5.0875,
"avg_runs_allowed": 5.025,
"offense_index": 1.1321,
"defense_index": 0.8943,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0564
},
"edges": {
"quality_edge": -0.1562,
"offense_edge": -0.0432,
"opponent_offense_edge": 0.1321,
"defense_strength": -0.0068,
"opponent_defense_weakness": 0.1057,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9883,
"run_prevention": 1.0296,
"strikeout": 0.9847
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "804636",
"profile": {
"available": true,
"pitcher_id": "804636",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 89.0,
"k_percent": 21.9,
"bb_percent": 11.4,
"woba": 0.286,
"xwoba": 0.284,
"sweet_spot_percent": 28.0,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 36.0,
"avg_best_speed": 80.655,
"avg_hyper_speed": 93.6935,
"whiff_percent": 26.9,
"swing_percent": 50.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.52,
"command_and_miss": -0.0364,
"regression_edge": 0.0571,
"xwoba_edge": 0.7714,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.2714,
"whiff_edge": 0.2429,
"bb_edge": -0.575,
"pitch_design_score": 0.0784
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804636",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 91.26372062270342,
"release_spin_rate": 2117.2126479472468,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 91.26372062270342,
"release_spin_rate": 2117.2126479472468,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.2637,
"release_spin_rate": 2117.2126,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0784,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5598,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1322,
"sample_weight": 0.45,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0041,
"walk_factor": 1.0207,
"homer_factor": 0.9695,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "804636",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.995,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.995,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0093,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9863,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0018,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260926_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_NYM@WAS | home | Connelly Early | Connelly Early | True | 5.2 | 3.0 | -8 | 5 | 0 | -5 | 4/1 | 3/0 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.436363636363636,
"WHIP": 1.2545454545454544,
"IP": 91.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.392,
"recent_avg_IP": 5.067,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1865,
"sample_weight": 1.0,
"run_prevention_factor": 1.0158,
"strikeout_factor": 1.0017,
"walk_factor": 0.992,
"homer_factor": 1.0853,
"regression_flag": "neutral",
"k_percent": 23.8,
"bb_percent": 8.7,
"woba": 0.32,
"xwoba": 0.32,
"barrel_percent": 10.6,
"hard_hit_percent": 40.9,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 113,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "813349",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 11.0,
"R": 11.0,
"H": 26.0,
"BB": 11.0,
"SO": 30.0,
"HR": 4.0,
"BF": 113.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.2,
"H": 5.2,
"BB": 2.2,
"SO": 6.0,
"HR": 0.8,
"BF": 22.6,
"Pitches": 88.8
},
"rates": {
"ERA": 3.9079,
"WHIP": 1.4605,
"ER_per_IP": 0.43421,
"H_per_IP": 1.02632,
"BB_per_IP": 0.43421,
"SO_per_IP": 1.18421,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 20.0,
"R": 20.0,
"H": 51.0,
"BB": 17.0,
"SO": 62.0,
"HR": 10.0,
"BF": 239.0,
"Pitches": 912.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 5.1,
"BB": 1.7,
"SO": 6.2,
"HR": 1.0,
"BF": 23.9,
"Pitches": 91.2
},
"rates": {
"ERA": 3.2143,
"WHIP": 1.2143,
"ER_per_IP": 0.35714,
"H_per_IP": 0.91071,
"BB_per_IP": 0.30357,
"SO_per_IP": 1.10714,
"HR_per_IP": 0.17857
}
},
"season": {
"games": 17,
"totals": {
"IP": 91.2,
"ER": 35.0,
"R": 35.0,
"H": 81.0,
"BB": 34.0,
"SO": 93.0,
"HR": 15.0,
"BF": 390.0,
"Pitches": 1528.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0588,
"R": 2.0588,
"H": 4.7647,
"BB": 2.0,
"SO": 5.4706,
"HR": 0.8824,
"BF": 22.9412,
"Pitches": 89.8824
},
"rates": {
"ERA": 3.4364,
"WHIP": 1.2545,
"ER_per_IP": 0.38182,
"H_per_IP": 0.88364,
"BB_per_IP": 0.37091,
"SO_per_IP": 1.01455,
"HR_per_IP": 0.16364
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.279,
"predicted_H": 5.185,
"predicted_BB": 2.028,
"predicted_SO": 5.818,
"predicted_HR": 0.874,
"predicted_ERA": 3.8098,
"predicted_WHIP": 1.3399
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.279,
"final": 3.4927,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.185,
"final": 4.6564,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.028,
"final": 2.4615,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.818,
"final": 4.5611,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.874,
"final": 0.9302,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8098,
"final": 3.8098,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3399,
"final": 1.3399,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 20,
"H": 51,
"BB": 17,
"SO": 62,
"HR": 10,
"ERA": 3.2142857142857144,
"WHIP": 1.2142857142857142,
"K9": 9.964285714285714,
"HR9": 1.6071428571428572,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-06-30T00:00:00"
},
"recent_form_boost": 0.8518068150111606,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "813349",
"player_name": "Connelly Early",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 814.0,
"runs_allowed": 804.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0625,
"avg_runs_scored": 5.0875,
"avg_runs_allowed": 5.025,
"offense_index": 1.1321,
"defense_index": 0.8943,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0564
},
"opponent": {
"team": "NYM",
"games": 160,
"wins": 73,
"losses": 87,
"win_pct": 0.4562,
"runs_scored": 688.0,
"runs_allowed": 724.0,
"run_differential": -36.0,
"run_differential_per_game": -0.225,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.525,
"offense_index": 0.9568,
"defense_index": 0.9932,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0998
},
"edges": {
"quality_edge": 0.1562,
"offense_edge": 0.1321,
"opponent_offense_edge": -0.0432,
"defense_strength": -0.1057,
"opponent_defense_weakness": 0.0068,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0048,
"run_prevention": 0.9958,
"strikeout": 1.0081
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "813349",
"profile": {
"available": true,
"pitcher_id": "813349",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 345.0,
"k_percent": 23.8,
"bb_percent": 8.7,
"woba": 0.32,
"xwoba": 0.32,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 10.6,
"hard_hit_percent": 40.9,
"avg_best_speed": 80.9147,
"avg_hyper_speed": 94.5085,
"whiff_percent": 23.7,
"swing_percent": 46.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3526,
"command_and_miss": 0.0607,
"regression_edge": 0.0,
"xwoba_edge": -0.2571,
"barrel_edge": -0.7556,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.2143,
"bb_edge": 0.1,
"pitch_design_score": -0.0601
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "813349",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.79168102475339,
"release_spin_rate": 2114.250313622991,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.79168102475339,
"release_spin_rate": 2114.250313622991,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.7917,
"release_spin_rate": 2114.2503,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0601,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.429,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1865,
"sample_weight": 1.0,
"run_prevention_factor": 1.0158,
"strikeout_factor": 1.0017,
"walk_factor": 0.992,
"homer_factor": 1.0853,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "813349",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0158,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0158,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.992,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0853,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0017,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
}
],
"provenance": {
"prediction": "output/games/20260926_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_PIT@DET | away | Kirby Yates | Kirby Yates | True | 5.0 | 1.2 | -10 | 2 | 0 | -2 | 5/2 | 2/0 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.098360655737705,
"WHIP": 1.180327868852459,
"IP": 40.2,
"games_started": null,
"games_pitched": 44,
"role_avg_IP": 0.924,
"recent_avg_IP": 0.933,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1696,
"sample_weight": 0.652,
"run_prevention_factor": 0.9856,
"strikeout_factor": 1.0343,
"walk_factor": 1.0104,
"homer_factor": 1.0022,
"regression_flag": "neutral",
"k_percent": 27.9,
"bb_percent": 9.9,
"woba": 0.291,
"xwoba": 0.286,
"barrel_percent": 5.8,
"hard_hit_percent": 46.6,
"whiff_percent": 28.5
},
"espn_rank": {
"rank": 241,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 40.2,
"season_ERA": 3.098,
"season_WHIP": 1.18,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.339,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6251,
"prior_weight": 0.3749
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "489446",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 44,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 1.0,
"R": 1.0,
"H": 5.0,
"BB": 4.0,
"SO": 4.0,
"HR": 0.0,
"BF": 20.0,
"Pitches": 88.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.0,
"BB": 0.8,
"SO": 0.8,
"HR": 0.0,
"BF": 4.0,
"Pitches": 17.6
},
"rates": {
"ERA": 1.9286,
"WHIP": 1.9286,
"ER_per_IP": 0.21429,
"H_per_IP": 1.07143,
"BB_per_IP": 0.85714,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 2.0,
"R": 2.0,
"H": 10.0,
"BB": 4.0,
"SO": 10.0,
"HR": 0.0,
"BF": 39.0,
"Pitches": 163.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.0,
"BB": 0.4,
"SO": 1.0,
"HR": 0.0,
"BF": 3.9,
"Pitches": 16.3
},
"rates": {
"ERA": 1.9286,
"WHIP": 1.5,
"ER_per_IP": 0.21429,
"H_per_IP": 1.07143,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.0
}
},
"season": {
"games": 44,
"totals": {
"IP": 40.2,
"ER": 14.0,
"R": 15.0,
"H": 31.0,
"BB": 17.0,
"SO": 48.0,
"HR": 2.0,
"BF": 171.0,
"Pitches": 692.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3182,
"R": 0.3409,
"H": 0.7045,
"BB": 0.3864,
"SO": 1.0909,
"HR": 0.0455,
"BF": 3.8864,
"Pitches": 15.7273
},
"rates": {
"ERA": 3.0984,
"WHIP": 1.1803,
"ER_per_IP": 0.34426,
"H_per_IP": 0.7623,
"BB_per_IP": 0.41803,
"SO_per_IP": 1.18033,
"HR_per_IP": 0.04918
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 0.942,
"predicted_H": 2.749,
"predicted_BB": 1.456,
"predicted_SO": 2.678,
"predicted_HR": 0.17,
"predicted_ERA": 3.0846,
"predicted_WHIP": 1.5292
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5084,
"form_weight": 0.4916,
"form_reliability": 0.6251,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.339,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6251,
"prior_weight": 0.3749
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.942,
"final": 1.9883,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.749,
"final": 3.8934,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.456,
"final": 1.7326,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.678,
"final": 3.3501,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.17,
"final": 0.0836,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0846,
"final": 3.0846,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5292,
"final": 1.5292,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 2,
"H": 10,
"BB": 4,
"SO": 10,
"HR": 0,
"ERA": 1.9285714285714288,
"WHIP": 1.5000000000000002,
"K9": 9.642857142857144,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.9111610753536225,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.339,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6251,
"prior_weight": 0.3749
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "489446",
"player_name": "Kirby Yates",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 160,
"wins": 81,
"losses": 79,
"win_pct": 0.5062,
"runs_scored": 760.0,
"runs_allowed": 733.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1688,
"avg_runs_scored": 4.75,
"avg_runs_allowed": 4.5812,
"offense_index": 1.0578,
"defense_index": 0.9802,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0609
},
"opponent": {
"team": "DET",
"games": 160,
"wins": 75,
"losses": 85,
"win_pct": 0.4688,
"runs_scored": 717.0,
"runs_allowed": 645.0,
"run_differential": 72.0,
"run_differential_per_game": 0.45,
"avg_runs_scored": 4.4813,
"avg_runs_allowed": 4.0312,
"offense_index": 0.998,
"defense_index": 1.1139,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.4,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0064
},
"edges": {
"quality_edge": 0.0673,
"offense_edge": 0.0578,
"opponent_offense_edge": -0.002,
"defense_strength": -0.0198,
"opponent_defense_weakness": -0.1139,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0022,
"run_prevention": 0.9983,
"strikeout": 1.0022
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "489446",
"profile": {
"available": true,
"pitcher_id": "489446",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 163.0,
"k_percent": 27.9,
"bb_percent": 9.9,
"woba": 0.291,
"xwoba": 0.286,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 5.8,
"hard_hit_percent": 46.6,
"avg_best_speed": 82.2002,
"avg_hyper_speed": 95.1416,
"whiff_percent": 28.5,
"swing_percent": 52.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2141,
"command_and_miss": 0.5043,
"regression_edge": 0.1429,
"xwoba_edge": 0.7143,
"barrel_edge": 0.3111,
"hard_hit_edge": -1.2429,
"whiff_edge": 0.4714,
"bb_edge": -0.2,
"pitch_design_score": -0.0645
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "489446",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 88.71216371796498,
"release_spin_rate": 1986.3610646709749,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 88.71216371796498,
"release_spin_rate": 1986.3610646709749,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.7122,
"release_spin_rate": 1986.3611,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0645,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4608,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1696,
"sample_weight": 0.652,
"run_prevention_factor": 0.9856,
"strikeout_factor": 1.0343,
"walk_factor": 1.0104,
"homer_factor": 1.0022,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "489446",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9906,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9906,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0068,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0014,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0224,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_PIT@DET | home | Justin Verlander | Justin Verlander | True | 3.2 | 5.1 | 5 | 6 | 2 | -4 | 9/5 | 0/1 | 3/6 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 12.272727272727273,
"WHIP": 2.181818181818182,
"IP": 3.2,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 3.667,
"recent_avg_IP": 3.667,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0385,
"sample_weight": 0.45,
"run_prevention_factor": 0.9967,
"strikeout_factor": 1.0062,
"walk_factor": 1.009,
"homer_factor": 0.9936,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 10.1,
"woba": 0.314,
"xwoba": 0.308,
"barrel_percent": 6.8,
"hard_hit_percent": 37.1,
"whiff_percent": 26.5
},
"espn_rank": {
"rank": 676,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "434378",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"per_game": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"rates": {
"ERA": 12.2727,
"WHIP": 2.1818,
"ER_per_IP": 1.36364,
"H_per_IP": 1.63636,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.27273,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"per_game": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"rates": {
"ERA": 12.2727,
"WHIP": 2.1818,
"ER_per_IP": 1.36364,
"H_per_IP": 1.63636,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.27273,
"HR_per_IP": 0.27273
}
},
"season": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"per_game": {
"IP": 3.2,
"ER": 5.0,
"R": 5.0,
"H": 6.0,
"BB": 2.0,
"SO": 1.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 80.0
},
"rates": {
"ERA": 12.2727,
"WHIP": 2.1818,
"ER_per_IP": 1.36364,
"H_per_IP": 1.63636,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.27273,
"HR_per_IP": 0.27273
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.585,
"predicted_H": 4.308,
"predicted_BB": 1.606,
"predicted_SO": 3.255,
"predicted_HR": 0.668,
"predicted_ERA": 5.8975,
"predicted_WHIP": 1.4993
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.585,
"final": 4.9826,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.308,
"final": 7.6021,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.606,
"final": 0.4785,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.255,
"final": 1.6718,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.668,
"final": 0.9011,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8975,
"final": 5.8975,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4993,
"final": 1.4993,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 3.2,
"ER": 5,
"H": 6,
"BB": 2,
"SO": 1,
"HR": 1,
"ERA": 12.272727272727273,
"WHIP": 2.181818181818182,
"K9": 2.4545454545454546,
"HR9": 2.4545454545454546,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-03-30T00:00:00"
},
"recent_form_boost": 1.1093440035382907,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_BB": 0.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 6,
"predicted_H": 9,
"predicted_BB": 0,
"predicted_SO": 1,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "434378",
"player_name": "Justin Verlander",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 160,
"wins": 75,
"losses": 85,
"win_pct": 0.4688,
"runs_scored": 717.0,
"runs_allowed": 645.0,
"run_differential": 72.0,
"run_differential_per_game": 0.45,
"avg_runs_scored": 4.4813,
"avg_runs_allowed": 4.0312,
"offense_index": 0.998,
"defense_index": 1.1139,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.4,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0064
},
"opponent": {
"team": "PIT",
"games": 160,
"wins": 81,
"losses": 79,
"win_pct": 0.5062,
"runs_scored": 760.0,
"runs_allowed": 733.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1688,
"avg_runs_scored": 4.75,
"avg_runs_allowed": 4.5812,
"offense_index": 1.0578,
"defense_index": 0.9802,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0609
},
"edges": {
"quality_edge": -0.0673,
"offense_edge": -0.002,
"opponent_offense_edge": 0.0578,
"defense_strength": 0.1139,
"opponent_defense_weakness": 0.0198,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9984,
"run_prevention": 1.0012,
"strikeout": 0.9934
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "434378",
"profile": {
"available": true,
"pitcher_id": "434378",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 23.1,
"bb_percent": 10.1,
"woba": 0.314,
"xwoba": 0.308,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 37.1,
"avg_best_speed": 77.5616,
"avg_hyper_speed": 93.7975,
"whiff_percent": 26.5,
"swing_percent": 47.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0823,
"command_and_miss": 0.0857,
"regression_edge": 0.1714,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.1143,
"whiff_edge": 0.1857,
"bb_edge": -0.25,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "434378",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0385,
"sample_weight": 0.45,
"run_prevention_factor": 0.9967,
"strikeout_factor": 1.0062,
"walk_factor": 1.009,
"homer_factor": 0.9936,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "434378",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 0.9985,
"adjusted": 5
},
"predicted_H": {
"original": 6.0,
"factor": 0.9985,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.004,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9971,
"adjusted": 1
},
"predicted_SO": {
"original": 1.0,
"factor": 1.0028,
"adjusted": 1
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 9,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260926_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_STL@MIL | away | Quinn Mathews | Quinn Mathews | True | 6.0 | 5.0 | -3 | 1 | 3 | 2 | 5/5 | 0/2 | 7/7 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 3.6541353383458643,
"WHIP": 1.37593984962406,
"IP": 44.1,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 5.542,
"recent_avg_IP": 6.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1193,
"sample_weight": 0.644,
"run_prevention_factor": 0.9899,
"strikeout_factor": 0.9996,
"walk_factor": 1.0052,
"homer_factor": 0.943,
"regression_flag": "neutral",
"k_percent": 20.5,
"bb_percent": 9.5,
"woba": 0.311,
"xwoba": 0.299,
"barrel_percent": 3.8,
"hard_hit_percent": 34.8,
"whiff_percent": 26.6
},
"espn_rank": {
"rank": 218,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687273",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 25.0,
"BB": 11.0,
"SO": 26.0,
"HR": 3.0,
"BF": 124.0,
"Pitches": 495.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 5.0,
"BB": 2.2,
"SO": 5.2,
"HR": 0.6,
"BF": 24.8,
"Pitches": 99.0
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.1868,
"ER_per_IP": 0.26374,
"H_per_IP": 0.82418,
"BB_per_IP": 0.36264,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 44.1,
"ER": 18.0,
"R": 18.0,
"H": 43.0,
"BB": 18.0,
"SO": 39.0,
"HR": 4.0,
"BF": 190.0,
"Pitches": 786.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.25,
"H": 5.375,
"BB": 2.25,
"SO": 4.875,
"HR": 0.5,
"BF": 23.75,
"Pitches": 98.25
},
"rates": {
"ERA": 3.6541,
"WHIP": 1.3759,
"ER_per_IP": 0.40602,
"H_per_IP": 0.96992,
"BB_per_IP": 0.40602,
"SO_per_IP": 0.8797,
"HR_per_IP": 0.09023
}
},
"season": {
"games": 8,
"totals": {
"IP": 44.1,
"ER": 18.0,
"R": 18.0,
"H": 43.0,
"BB": 18.0,
"SO": 39.0,
"HR": 4.0,
"BF": 190.0,
"Pitches": 786.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.25,
"H": 5.375,
"BB": 2.25,
"SO": 4.875,
"HR": 0.5,
"BF": 23.75,
"Pitches": 98.25
},
"rates": {
"ERA": 3.6541,
"WHIP": 1.3759,
"ER_per_IP": 0.40602,
"H_per_IP": 0.96992,
"BB_per_IP": 0.40602,
"SO_per_IP": 0.8797,
"HR_per_IP": 0.09023
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.301,
"predicted_H": 5.424,
"predicted_BB": 2.241,
"predicted_SO": 5.293,
"predicted_HR": 0.69,
"predicted_ERA": 3.4891,
"predicted_WHIP": 1.2915
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.301,
"final": 1.6342,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.424,
"final": 5.2067,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.241,
"final": 1.0925,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.293,
"final": 6.1678,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.69,
"final": 0.3364,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4891,
"final": 3.4891,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2915,
"final": 1.2915,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 18,
"H": 43,
"BB": 18,
"SO": 39,
"HR": 4,
"ERA": 3.6541353383458643,
"WHIP": 1.37593984962406,
"K9": 7.917293233082706,
"HR9": 0.8120300751879699,
"games_pitched": 8,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9053312511013861,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687273",
"player_name": "Quinn Mathews",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 160,
"wins": 77,
"losses": 83,
"win_pct": 0.4813,
"runs_scored": 714.0,
"runs_allowed": 740.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1625,
"avg_runs_scored": 4.4625,
"avg_runs_allowed": 4.625,
"offense_index": 0.9955,
"defense_index": 0.9692,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.0,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.1058
},
"opponent": {
"team": "MIL",
"games": 160,
"wins": 101,
"losses": 59,
"win_pct": 0.6312,
"runs_scored": 823.0,
"runs_allowed": 612.0,
"run_differential": 211.0,
"run_differential_per_game": 1.3188,
"avg_runs_scored": 5.1437,
"avg_runs_allowed": 3.825,
"offense_index": 1.1475,
"defense_index": 1.1719,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.9,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.3783
},
"edges": {
"quality_edge": -0.4841,
"offense_edge": -0.0045,
"opponent_offense_edge": 0.1475,
"defense_strength": -0.0308,
"opponent_defense_weakness": -0.1719,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9738,
"run_prevention": 1.0509,
"strikeout": 0.9737
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687273",
"profile": {
"available": true,
"pitcher_id": "687273",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 161.0,
"k_percent": 20.5,
"bb_percent": 9.5,
"woba": 0.311,
"xwoba": 0.299,
"sweet_spot_percent": 32.6,
"barrel_batted_rate": 3.8,
"hard_hit_percent": 34.8,
"avg_best_speed": 78.4522,
"avg_hyper_speed": 93.8025,
"whiff_percent": 26.6,
"swing_percent": 45.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3101,
"command_and_miss": -0.0464,
"regression_edge": 0.3429,
"xwoba_edge": 0.3429,
"barrel_edge": 0.7556,
"hard_hit_edge": 0.4429,
"whiff_edge": 0.2,
"bb_edge": -0.1,
"pitch_design_score": -0.1333
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687273",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 87.48356848439896,
"release_spin_rate": 2148.8854214067615,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 87.48356848439896,
"release_spin_rate": 2148.8854214067615,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4836,
"release_spin_rate": 2148.8854,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1333,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9522,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1193,
"sample_weight": 0.644,
"run_prevention_factor": 0.9899,
"strikeout_factor": 0.9996,
"walk_factor": 1.0052,
"homer_factor": 0.943,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687273",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9935,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9935,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0033,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9633,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9997,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260926_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_STL@MIL | home | Dustin May | Dustin May | True | 4.1 | 3.0 | -4 | 1 | 2 | 1 | 1/3 | 2/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.668224299065421,
"WHIP": 1.3177570093457944,
"IP": 142.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 4.756,
"recent_avg_IP": 3.667,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1896,
"sample_weight": 1.0,
"run_prevention_factor": 1.0161,
"strikeout_factor": 0.9926,
"walk_factor": 0.98,
"homer_factor": 1.0554,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 8.1,
"woba": 0.317,
"xwoba": 0.324,
"barrel_percent": 7.6,
"hard_hit_percent": 44.4,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 314,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669160",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.1,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 7.0,
"SO": 21.0,
"HR": 4.0,
"BF": 84.0,
"Pitches": 343.0
},
"per_game": {
"IP": 3.2,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 1.4,
"SO": 4.2,
"HR": 0.8,
"BF": 16.8,
"Pitches": 68.6
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4727,
"ER_per_IP": 0.6,
"H_per_IP": 1.09091,
"BB_per_IP": 0.38182,
"SO_per_IP": 1.14545,
"HR_per_IP": 0.21818
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 38.2,
"ER": 21.0,
"R": 21.0,
"H": 35.0,
"BB": 16.0,
"SO": 36.0,
"HR": 6.0,
"BF": 167.0,
"Pitches": 660.0
},
"per_game": {
"IP": 4.0,
"ER": 2.1,
"R": 2.1,
"H": 3.5,
"BB": 1.6,
"SO": 3.6,
"HR": 0.6,
"BF": 16.7,
"Pitches": 66.0
},
"rates": {
"ERA": 4.8879,
"WHIP": 1.319,
"ER_per_IP": 0.5431,
"H_per_IP": 0.90517,
"BB_per_IP": 0.41379,
"SO_per_IP": 0.93103,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 30,
"totals": {
"IP": 142.2,
"ER": 74.0,
"R": 77.0,
"H": 139.0,
"BB": 49.0,
"SO": 139.0,
"HR": 13.0,
"BF": 608.0,
"Pitches": 2341.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4667,
"R": 2.5667,
"H": 4.6333,
"BB": 1.6333,
"SO": 4.6333,
"HR": 0.4333,
"BF": 20.2667,
"Pitches": 78.0333
},
"rates": {
"ERA": 4.6682,
"WHIP": 1.3178,
"ER_per_IP": 0.51869,
"H_per_IP": 0.9743,
"BB_per_IP": 0.34346,
"SO_per_IP": 0.9743,
"HR_per_IP": 0.09112
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.245,
"predicted_H": 4.033,
"predicted_BB": 1.551,
"predicted_SO": 4.121,
"predicted_HR": 0.676,
"predicted_ERA": 5.0098,
"predicted_WHIP": 1.3843
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.245,
"final": 1.7341,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.033,
"final": 2.7883,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.551,
"final": 1.7353,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.121,
"final": 3.661,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.676,
"final": 0.3986,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0098,
"final": 5.0098,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3843,
"final": 1.3843,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 38.2,
"ER": 21,
"H": 35,
"BB": 16,
"SO": 36,
"HR": 6,
"ERA": 4.887931034482759,
"WHIP": 1.3189655172413794,
"K9": 8.379310344827587,
"HR9": 1.396551724137931,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.0427089086072199,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 160,
"wins": 101,
"losses": 59,
"win_pct": 0.6312,
"runs_scored": 823.0,
"runs_allowed": 612.0,
"run_differential": 211.0,
"run_differential_per_game": 1.3188,
"avg_runs_scored": 5.1437,
"avg_runs_allowed": 3.825,
"offense_index": 1.1475,
"defense_index": 1.1719,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.9,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.3783
},
"opponent": {
"team": "STL",
"games": 160,
"wins": 77,
"losses": 83,
"win_pct": 0.4813,
"runs_scored": 714.0,
"runs_allowed": 740.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1625,
"avg_runs_scored": 4.4625,
"avg_runs_allowed": 4.625,
"offense_index": 0.9955,
"defense_index": 0.9692,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.0,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.1058
},
"edges": {
"quality_edge": 0.4841,
"offense_edge": 0.1475,
"opponent_offense_edge": -0.0045,
"defense_strength": 0.1719,
"opponent_defense_weakness": 0.0308,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0247,
"run_prevention": 0.9579,
"strikeout": 1.0149
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 581.0,
"k_percent": 22.9,
"bb_percent": 8.1,
"woba": 0.317,
"xwoba": 0.324,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 44.4,
"avg_best_speed": 79.2718,
"avg_hyper_speed": 94.6285,
"whiff_percent": 23.0,
"swing_percent": 47.6
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3243,
"command_and_miss": -0.0021,
"regression_edge": -0.2,
"xwoba_edge": -0.3714,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.9286,
"whiff_edge": -0.3143,
"bb_edge": 0.25,
"pitch_design_score": 0.1569
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 59,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 59,
"pitch_usage": 0.0,
"release_speed": 92.66624874445156,
"release_spin_rate": 2536.673286155761,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 59,
"pitch_usage": 0.0,
"release_speed": 92.66624874445156,
"release_spin_rate": 2536.673286155761,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.6662,
"release_spin_rate": 2536.6733,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1569,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1208,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1896,
"sample_weight": 1.0,
"run_prevention_factor": 1.0161,
"strikeout_factor": 0.9926,
"walk_factor": 0.98,
"homer_factor": 1.0554,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669160",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0161,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0161,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0554,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9926,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260926_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TB@PHI | away | Griffin Jax | Griffin Jax | True | 5.0 | 3.0 | -6 | 0 | 0 | 0 | 1/2 | 0/0 | 2/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.375,
"WHIP": 1.152439024390244,
"IP": 109.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 4.561,
"recent_avg_IP": 4.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0237,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0486,
"walk_factor": 0.974,
"homer_factor": 1.0464,
"regression_flag": "neutral",
"k_percent": 25.6,
"bb_percent": 7.8,
"woba": 0.299,
"xwoba": 0.32,
"barrel_percent": 8.8,
"hard_hit_percent": 39.7,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 271,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 109.1,
"season_ERA": 3.375,
"season_WHIP": 1.152,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "643377",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 8.0,
"R": 10.0,
"H": 18.0,
"BB": 5.0,
"SO": 23.0,
"HR": 2.0,
"BF": 91.0,
"Pitches": 352.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 2.0,
"H": 3.6,
"BB": 1.0,
"SO": 4.6,
"HR": 0.4,
"BF": 18.2,
"Pitches": 70.4
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.0147,
"ER_per_IP": 0.35294,
"H_per_IP": 0.79412,
"BB_per_IP": 0.22059,
"SO_per_IP": 1.01471,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 21.0,
"R": 24.0,
"H": 39.0,
"BB": 15.0,
"SO": 57.0,
"HR": 4.0,
"BF": 201.0,
"Pitches": 763.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.4,
"H": 3.9,
"BB": 1.5,
"SO": 5.7,
"HR": 0.4,
"BF": 20.1,
"Pitches": 76.3
},
"rates": {
"ERA": 3.8311,
"WHIP": 1.0946,
"ER_per_IP": 0.42568,
"H_per_IP": 0.79054,
"BB_per_IP": 0.30405,
"SO_per_IP": 1.15541,
"HR_per_IP": 0.08108
}
},
"season": {
"games": 32,
"totals": {
"IP": 109.1,
"ER": 41.0,
"R": 51.0,
"H": 92.0,
"BB": 34.0,
"SO": 115.0,
"HR": 15.0,
"BF": 444.0,
"Pitches": 1656.0
},
"per_game": {
"IP": 3.1,
"ER": 1.2812,
"R": 1.5938,
"H": 2.875,
"BB": 1.0625,
"SO": 3.5938,
"HR": 0.4688,
"BF": 13.875,
"Pitches": 51.75
},
"rates": {
"ERA": 3.375,
"WHIP": 1.1524,
"ER_per_IP": 0.375,
"H_per_IP": 0.84146,
"BB_per_IP": 0.31098,
"SO_per_IP": 1.05183,
"HR_per_IP": 0.1372
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.835,
"predicted_H": 3.788,
"predicted_BB": 1.297,
"predicted_SO": 4.825,
"predicted_HR": 0.471,
"predicted_ERA": 3.6043,
"predicted_WHIP": 1.1097
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.835,
"final": 1.088,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.788,
"final": 2.6531,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.297,
"final": 0.769,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.825,
"final": 3.675,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.471,
"final": 0.2793,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6043,
"final": 3.6043,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1097,
"final": 1.1097,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 21,
"H": 39,
"BB": 15,
"SO": 57,
"HR": 4,
"ERA": 3.8310810810810816,
"WHIP": 1.0945945945945947,
"K9": 10.39864864864865,
"HR9": 0.7297297297297298,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9182040157833614,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "643377",
"player_name": "Griffin Jax",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 160,
"wins": 97,
"losses": 63,
"win_pct": 0.6062,
"runs_scored": 721.0,
"runs_allowed": 642.0,
"run_differential": 79.0,
"run_differential_per_game": 0.4938,
"avg_runs_scored": 4.5062,
"avg_runs_allowed": 4.0125,
"offense_index": 1.0053,
"defense_index": 1.1172,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.8,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1859
},
"opponent": {
"team": "PHI",
"games": 160,
"wins": 87,
"losses": 73,
"win_pct": 0.5437,
"runs_scored": 705.0,
"runs_allowed": 683.0,
"run_differential": 22.0,
"run_differential_per_game": 0.1375,
"avg_runs_scored": 4.4062,
"avg_runs_allowed": 4.2687,
"offense_index": 0.9829,
"defense_index": 1.0501,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.9,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.019
},
"edges": {
"quality_edge": 0.1669,
"offense_edge": 0.0053,
"opponent_offense_edge": -0.0171,
"defense_strength": 0.1172,
"opponent_defense_weakness": -0.0501,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0109,
"run_prevention": 0.9772,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "643377",
"profile": {
"available": true,
"pitcher_id": "643377",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 407.0,
"k_percent": 25.6,
"bb_percent": 7.8,
"woba": 0.299,
"xwoba": 0.32,
"sweet_spot_percent": 34.0,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 39.7,
"avg_best_speed": 77.7857,
"avg_hyper_speed": 94.1374,
"whiff_percent": 30.1,
"swing_percent": 48.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1166,
"command_and_miss": 0.5414,
"regression_edge": -0.6,
"xwoba_edge": -0.2571,
"barrel_edge": -0.3556,
"hard_hit_edge": -0.2571,
"whiff_edge": 0.7,
"bb_edge": 0.325,
"pitch_design_score": 0.1023
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "643377",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 76,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 91.69040072946703,
"release_spin_rate": 2573.7540952383274,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 91.69040072946703,
"release_spin_rate": 2573.7540952383274,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.6904,
"release_spin_rate": 2573.7541,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1023,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7305,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0237,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0486,
"walk_factor": 0.974,
"homer_factor": 1.0464,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "643377",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.998,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.974,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0464,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0486,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 66,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260926_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TB@PHI | home | Aaron Nola | Aaron Nola | True | 6.0 | 1.0 | -15 | 2 | 3 | 1 | 4/4 | 3/0 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.54302103250478,
"WHIP": 1.3307839388145315,
"IP": 174.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.448,
"recent_avg_IP": 6.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0232,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0234,
"walk_factor": 0.978,
"homer_factor": 1.0478,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 8.0,
"woba": 0.341,
"xwoba": 0.312,
"barrel_percent": 9.2,
"hard_hit_percent": 39.9,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 32,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605400",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 10.0,
"SO": 24.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 4.4,
"BB": 2.0,
"SO": 4.8,
"HR": 0.8,
"BF": 24.2,
"Pitches": 93.4
},
"rates": {
"ERA": 2.2979,
"WHIP": 1.0213,
"ER_per_IP": 0.25532,
"H_per_IP": 0.70213,
"BB_per_IP": 0.31915,
"SO_per_IP": 0.76596,
"HR_per_IP": 0.12766
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 17.0,
"R": 17.0,
"H": 47.0,
"BB": 20.0,
"SO": 61.0,
"HR": 10.0,
"BF": 239.0,
"Pitches": 950.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.7,
"H": 4.7,
"BB": 2.0,
"SO": 6.1,
"HR": 1.0,
"BF": 23.9,
"Pitches": 95.0
},
"rates": {
"ERA": 2.5359,
"WHIP": 1.1105,
"ER_per_IP": 0.28177,
"H_per_IP": 0.77901,
"BB_per_IP": 0.33149,
"SO_per_IP": 1.01105,
"HR_per_IP": 0.16575
}
},
"season": {
"games": 32,
"totals": {
"IP": 174.1,
"ER": 88.0,
"R": 90.0,
"H": 173.0,
"BB": 59.0,
"SO": 177.0,
"HR": 36.0,
"BF": 737.0,
"Pitches": 2925.0
},
"per_game": {
"IP": 5.1,
"ER": 2.75,
"R": 2.8125,
"H": 5.4062,
"BB": 1.8438,
"SO": 5.5312,
"HR": 1.125,
"BF": 23.0312,
"Pitches": 91.4062
},
"rates": {
"ERA": 4.543,
"WHIP": 1.3308,
"ER_per_IP": 0.50478,
"H_per_IP": 0.99235,
"BB_per_IP": 0.33843,
"SO_per_IP": 1.0153,
"HR_per_IP": 0.2065
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.053,
"predicted_H": 4.893,
"predicted_BB": 2.011,
"predicted_SO": 5.45,
"predicted_HR": 0.936,
"predicted_ERA": 3.0723,
"predicted_WHIP": 1.148
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.053,
"final": 1.6243,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.893,
"final": 4.5295,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.011,
"final": 2.4136,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.45,
"final": 4.8597,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.936,
"final": 0.555,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0723,
"final": 3.0723,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.148,
"final": 1.148,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.1,
"ER": 17,
"H": 47,
"BB": 20,
"SO": 61,
"HR": 10,
"ERA": 2.535911602209945,
"WHIP": 1.110497237569061,
"K9": 9.099447513812155,
"HR9": 1.4917127071823206,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.7728950154847204,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605400",
"player_name": "Aaron Nola",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 160,
"wins": 87,
"losses": 73,
"win_pct": 0.5437,
"runs_scored": 705.0,
"runs_allowed": 683.0,
"run_differential": 22.0,
"run_differential_per_game": 0.1375,
"avg_runs_scored": 4.4062,
"avg_runs_allowed": 4.2687,
"offense_index": 0.9829,
"defense_index": 1.0501,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.9,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.019
},
"opponent": {
"team": "TB",
"games": 160,
"wins": 97,
"losses": 63,
"win_pct": 0.6062,
"runs_scored": 721.0,
"runs_allowed": 642.0,
"run_differential": 79.0,
"run_differential_per_game": 0.4938,
"avg_runs_scored": 4.5062,
"avg_runs_allowed": 4.0125,
"offense_index": 1.0053,
"defense_index": 1.1172,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.8,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1859
},
"edges": {
"quality_edge": -0.1669,
"offense_edge": -0.0171,
"opponent_offense_edge": 0.0053,
"defense_strength": 0.0501,
"opponent_defense_weakness": -0.1172,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9946,
"run_prevention": 1.0042,
"strikeout": 0.9946
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605400",
"profile": {
"available": true,
"pitcher_id": "605400",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 687.0,
"k_percent": 24.0,
"bb_percent": 8.0,
"woba": 0.341,
"xwoba": 0.312,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 39.9,
"avg_best_speed": 76.7384,
"avg_hyper_speed": 94.2368,
"whiff_percent": 27.3,
"swing_percent": 46.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2089,
"command_and_miss": 0.2886,
"regression_edge": 0.8286,
"xwoba_edge": -0.0286,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.2857,
"whiff_edge": 0.3,
"bb_edge": 0.275,
"pitch_design_score": -0.2211
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.9161751557338,
"release_spin_rate": 2297.230473518228,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.9161751557338,
"release_spin_rate": 2297.230473518228,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.9162,
"release_spin_rate": 2297.2305,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2211,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5792,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0232,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0234,
"walk_factor": 0.978,
"homer_factor": 1.0478,
"woba_minus_xwoba": 0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605400",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.998,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0478,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0234,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 112,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -15 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260926_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TEX@MIN | away | Nathan Eovaldi | Nathan Eovaldi | True | 5.0 | 4.1 | -2 | 4 | 1 | -3 | 4/4 | 1/2 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.266509433962264,
"WHIP": 1.2099056603773584,
"IP": 141.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.03,
"recent_avg_IP": 5.467,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0423,
"sample_weight": 1.0,
"run_prevention_factor": 0.9964,
"strikeout_factor": 1.0354,
"walk_factor": 0.928,
"homer_factor": 1.0505,
"regression_flag": "neutral",
"k_percent": 23.7,
"bb_percent": 5.5,
"woba": 0.322,
"xwoba": 0.319,
"barrel_percent": 8.5,
"hard_hit_percent": 41.5,
"whiff_percent": 29.7
},
"espn_rank": {
"rank": 184,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543135",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 14.0,
"ER": 6.0,
"R": 6.0,
"H": 14.0,
"BB": 3.0,
"SO": 6.0,
"HR": 0.0,
"BF": 62.0,
"Pitches": 228.0
},
"per_game": {
"IP": 2.2,
"ER": 1.2,
"R": 1.2,
"H": 2.8,
"BB": 0.6,
"SO": 1.2,
"HR": 0.0,
"BF": 12.4,
"Pitches": 45.6
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.2143,
"ER_per_IP": 0.42857,
"H_per_IP": 1.0,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.42857,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 41.0,
"ER": 23.0,
"R": 24.0,
"H": 45.0,
"BB": 10.0,
"SO": 40.0,
"HR": 7.0,
"BF": 181.0,
"Pitches": 678.0
},
"per_game": {
"IP": 4.0,
"ER": 2.3,
"R": 2.4,
"H": 4.5,
"BB": 1.0,
"SO": 4.0,
"HR": 0.7,
"BF": 18.1,
"Pitches": 67.8
},
"rates": {
"ERA": 5.0488,
"WHIP": 1.3415,
"ER_per_IP": 0.56098,
"H_per_IP": 1.09756,
"BB_per_IP": 0.2439,
"SO_per_IP": 0.97561,
"HR_per_IP": 0.17073
}
},
"season": {
"games": 26,
"totals": {
"IP": 141.1,
"ER": 67.0,
"R": 70.0,
"H": 138.0,
"BB": 33.0,
"SO": 141.0,
"HR": 24.0,
"BF": 595.0,
"Pitches": 2149.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5769,
"R": 2.6923,
"H": 5.3077,
"BB": 1.2692,
"SO": 5.4231,
"HR": 0.9231,
"BF": 22.8846,
"Pitches": 82.6538
},
"rates": {
"ERA": 4.2665,
"WHIP": 1.2099,
"ER_per_IP": 0.47406,
"H_per_IP": 0.97642,
"BB_per_IP": 0.23349,
"SO_per_IP": 0.99764,
"HR_per_IP": 0.16981
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.95,
"predicted_H": 4.077,
"predicted_BB": 1.009,
"predicted_SO": 3.057,
"predicted_HR": 0.409,
"predicted_ERA": 4.399,
"predicted_WHIP": 1.2749
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.95,
"final": 2.8072,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.077,
"final": 4.0448,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.009,
"final": 1.0052,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.057,
"final": 4.7058,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.409,
"final": 1.0743,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.399,
"final": 4.399,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2749,
"final": 1.2749,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 41.0,
"ER": 23,
"H": 45,
"BB": 10,
"SO": 40,
"HR": 7,
"ERA": 5.048780487804878,
"WHIP": 1.3414634146341464,
"K9": 8.78048780487805,
"HR9": 1.5365853658536586,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.0613669195407773,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543135",
"player_name": "Nathan Eovaldi",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 663.0,
"runs_allowed": 711.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3,
"avg_runs_scored": 4.1437,
"avg_runs_allowed": 4.4437,
"offense_index": 0.9239,
"defense_index": 1.0092,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0421
},
"opponent": {
"team": "MIN",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 731.0,
"runs_allowed": 787.0,
"run_differential": -56.0,
"run_differential_per_game": -0.35,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 4.9188,
"offense_index": 1.0187,
"defense_index": 0.9118,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.4,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.0292
},
"edges": {
"quality_edge": -0.0129,
"offense_edge": -0.0761,
"opponent_offense_edge": 0.0187,
"defense_strength": 0.0092,
"opponent_defense_weakness": 0.0882,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.999,
"run_prevention": 1.0027,
"strikeout": 0.9981
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543135",
"profile": {
"available": true,
"pitcher_id": "543135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 581.0,
"k_percent": 23.7,
"bb_percent": 5.5,
"woba": 0.322,
"xwoba": 0.319,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 41.5,
"avg_best_speed": 76.8531,
"avg_hyper_speed": 94.3566,
"whiff_percent": 29.7,
"swing_percent": 51.9
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1575,
"command_and_miss": 0.5143,
"regression_edge": 0.0857,
"xwoba_edge": -0.2286,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.5143,
"whiff_edge": 0.6429,
"bb_edge": 0.9,
"pitch_design_score": -0.1466
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543135",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 67,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 87.24640997938972,
"release_spin_rate": 1886.4896008396245,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 87.24640997938972,
"release_spin_rate": 1886.4896008396245,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.2464,
"release_spin_rate": 1886.4896,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1466,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0471,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0423,
"sample_weight": 1.0,
"run_prevention_factor": 0.9964,
"strikeout_factor": 1.0354,
"walk_factor": 0.928,
"homer_factor": 1.0505,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543135",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9964,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9964,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.928,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0505,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0354,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260926_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260926 | 20260926_TEX@MIN | home | Bailey Ober | Bailey Ober | True | 5.0 | 5.0 | 0 | 1 | 6 | 5 | 3/10 | 2/1 | 1/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.214285714285714,
"WHIP": 1.2619047619047619,
"IP": 126.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.348,
"recent_avg_IP": 4.8,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2811,
"sample_weight": 1.0,
"run_prevention_factor": 1.0239,
"strikeout_factor": 0.9411,
"walk_factor": 0.952,
"homer_factor": 1.0495,
"regression_flag": "neutral",
"k_percent": 17.0,
"bb_percent": 6.7,
"woba": 0.316,
"xwoba": 0.325,
"barrel_percent": 9.6,
"hard_hit_percent": 37.0,
"whiff_percent": 19.9
},
"espn_rank": {
"rank": 88,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641927",
"report_date": "20260926",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 6.0,
"R": 7.0,
"H": 20.0,
"BB": 10.0,
"SO": 20.0,
"HR": 2.0,
"BF": 100.0,
"Pitches": 383.0
},
"per_game": {
"IP": 4.2,
"ER": 1.2,
"R": 1.4,
"H": 4.0,
"BB": 2.0,
"SO": 4.0,
"HR": 0.4,
"BF": 20.0,
"Pitches": 76.6
},
"rates": {
"ERA": 2.3824,
"WHIP": 1.3235,
"ER_per_IP": 0.26471,
"H_per_IP": 0.88235,
"BB_per_IP": 0.44118,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 22.0,
"R": 24.0,
"H": 52.0,
"BB": 15.0,
"SO": 33.0,
"HR": 6.0,
"BF": 214.0,
"Pitches": 819.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.4,
"H": 5.2,
"BB": 1.5,
"SO": 3.3,
"HR": 0.6,
"BF": 21.4,
"Pitches": 81.9
},
"rates": {
"ERA": 4.0408,
"WHIP": 1.3673,
"ER_per_IP": 0.44898,
"H_per_IP": 1.06122,
"BB_per_IP": 0.30612,
"SO_per_IP": 0.67347,
"HR_per_IP": 0.12245
}
},
"season": {
"games": 24,
"totals": {
"IP": 126.0,
"ER": 59.0,
"R": 63.0,
"H": 123.0,
"BB": 36.0,
"SO": 91.0,
"HR": 19.0,
"BF": 535.0,
"Pitches": 2013.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4583,
"R": 2.625,
"H": 5.125,
"BB": 1.5,
"SO": 3.7917,
"HR": 0.7917,
"BF": 22.2917,
"Pitches": 83.875
},
"rates": {
"ERA": 4.2143,
"WHIP": 1.2619,
"ER_per_IP": 0.46825,
"H_per_IP": 0.97619,
"BB_per_IP": 0.28571,
"SO_per_IP": 0.72222,
"HR_per_IP": 0.15079
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.946,
"predicted_H": 4.769,
"predicted_BB": 1.803,
"predicted_SO": 3.967,
"predicted_HR": 0.586,
"predicted_ERA": 3.5521,
"predicted_WHIP": 1.3328
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.946,
"final": 1.546,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.769,
"final": 4.021,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.803,
"final": 1.8863,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.967,
"final": 2.7124,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.586,
"final": 0.3382,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5521,
"final": 3.5521,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3328,
"final": 1.3328,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.0,
"ER": 22,
"H": 52,
"BB": 15,
"SO": 33,
"HR": 6,
"ERA": 4.040816326530612,
"WHIP": 1.3673469387755102,
"K9": 6.061224489795919,
"HR9": 1.1020408163265305,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.9486180395009566,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641927",
"player_name": "Bailey Ober",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 160,
"wins": 76,
"losses": 84,
"win_pct": 0.475,
"runs_scored": 731.0,
"runs_allowed": 787.0,
"run_differential": -56.0,
"run_differential_per_game": -0.35,
"avg_runs_scored": 4.5687,
"avg_runs_allowed": 4.9188,
"offense_index": 1.0187,
"defense_index": 0.9118,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.4,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.0292
},
"opponent": {
"team": "TEX",
"games": 160,
"wins": 79,
"losses": 81,
"win_pct": 0.4938,
"runs_scored": 663.0,
"runs_allowed": 711.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3,
"avg_runs_scored": 4.1437,
"avg_runs_allowed": 4.4437,
"offense_index": 0.9239,
"defense_index": 1.0092,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0421
},
"edges": {
"quality_edge": 0.0129,
"offense_edge": 0.0187,
"opponent_offense_edge": -0.0761,
"defense_strength": -0.0882,
"opponent_defense_weakness": -0.0092,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0009,
"run_prevention": 0.996,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641927",
"profile": {
"available": true,
"pitcher_id": "641927",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 497.0,
"k_percent": 17.0,
"bb_percent": 6.7,
"woba": 0.316,
"xwoba": 0.325,
"sweet_spot_percent": 30.1,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 37.0,
"avg_best_speed": 77.8076,
"avg_hyper_speed": 93.9223,
"whiff_percent": 19.9,
"swing_percent": 49.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 93.8982,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1995,
"command_and_miss": -0.4664,
"regression_edge": -0.2571,
"xwoba_edge": -0.4,
"barrel_edge": -0.5333,
"hard_hit_edge": 0.1286,
"whiff_edge": -0.7571,
"bb_edge": 0.6,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641927",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 83.59642061883363,
"release_spin_rate": 2144.642798259914,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 83.59642061883363,
"release_spin_rate": 2144.642798259914,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 83.5964,
"release_spin_rate": 2144.6428,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2811,
"sample_weight": 1.0,
"run_prevention_factor": 1.0239,
"strikeout_factor": 0.9411,
"walk_factor": 0.952,
"homer_factor": 1.0495,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641927",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0239,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0239,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.952,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0495,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9411,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was +7."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260926_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |