| 20260927 | 20260927_ARI@SD | away | Michael Soroka | Michael Soroka | True | 5.1 | 4.2 | -2 | 3 | 3 | 0 | 3/3 | 3/2 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.31437125748503,
"WHIP": 1.0868263473053892,
"IP": 111.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.367,
"recent_avg_IP": 5.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 1.0006,
"walk_factor": 0.936,
"homer_factor": 0.9931,
"regression_flag": "neutral",
"k_percent": 24.2,
"bb_percent": 5.9,
"woba": 0.282,
"xwoba": 0.311,
"barrel_percent": 8.1,
"hard_hit_percent": 33.9,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 72,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "647336",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 13.0,
"R": 14.0,
"H": 19.0,
"BB": 7.0,
"SO": 27.0,
"HR": 3.0,
"BF": 103.0,
"Pitches": 395.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.8,
"H": 3.8,
"BB": 1.4,
"SO": 5.4,
"HR": 0.6,
"BF": 20.6,
"Pitches": 79.0
},
"rates": {
"ERA": 4.68,
"WHIP": 1.04,
"ER_per_IP": 0.52,
"H_per_IP": 0.76,
"BB_per_IP": 0.28,
"SO_per_IP": 1.08,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 19.0,
"R": 20.0,
"H": 35.0,
"BB": 13.0,
"SO": 50.0,
"HR": 5.0,
"BF": 199.0,
"Pitches": 774.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 2.0,
"H": 3.5,
"BB": 1.3,
"SO": 5.0,
"HR": 0.5,
"BF": 19.9,
"Pitches": 77.4
},
"rates": {
"ERA": 3.3974,
"WHIP": 0.9536,
"ER_per_IP": 0.37748,
"H_per_IP": 0.69536,
"BB_per_IP": 0.25828,
"SO_per_IP": 0.99338,
"HR_per_IP": 0.09934
}
},
"season": {
"games": 21,
"totals": {
"IP": 111.1,
"ER": 41.0,
"R": 42.0,
"H": 94.0,
"BB": 27.0,
"SO": 110.0,
"HR": 9.0,
"BF": 454.0,
"Pitches": 1762.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9524,
"R": 2.0,
"H": 4.4762,
"BB": 1.2857,
"SO": 5.2381,
"HR": 0.4286,
"BF": 21.619,
"Pitches": 83.9048
},
"rates": {
"ERA": 3.3144,
"WHIP": 1.0868,
"ER_per_IP": 0.36826,
"H_per_IP": 0.84431,
"BB_per_IP": 0.24251,
"SO_per_IP": 0.98802,
"HR_per_IP": 0.08084
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.322,
"predicted_H": 4.086,
"predicted_BB": 1.468,
"predicted_SO": 5.184,
"predicted_HR": 0.58,
"predicted_ERA": 4.0841,
"predicted_WHIP": 1.0853
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.322,
"final": 2.6144,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.086,
"final": 3.6177,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.468,
"final": 2.1287,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.184,
"final": 5.1047,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.58,
"final": 0.3299,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0841,
"final": 4.0841,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0853,
"final": 1.0853,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 19,
"H": 35,
"BB": 13,
"SO": 50,
"HR": 5,
"ERA": 3.3973509933774833,
"WHIP": 0.9536423841059603,
"K9": 8.940397350993377,
"HR9": 0.8940397350993377,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.8667518021029627,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "647336",
"player_name": "Michael Soroka",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 161,
"wins": 86,
"losses": 75,
"win_pct": 0.5342,
"runs_scored": 735.0,
"runs_allowed": 721.0,
"run_differential": 14.0,
"run_differential_per_game": 0.087,
"avg_runs_scored": 4.5652,
"avg_runs_allowed": 4.4783,
"offense_index": 1.0201,
"defense_index": 0.9994,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 5.1,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0748
},
"opponent": {
"team": "SD",
"games": 161,
"wins": 90,
"losses": 71,
"win_pct": 0.559,
"runs_scored": 713.0,
"runs_allowed": 677.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2236,
"avg_runs_scored": 4.4286,
"avg_runs_allowed": 4.205,
"offense_index": 0.9895,
"defense_index": 1.0643,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.4,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1826
},
"edges": {
"quality_edge": -0.1078,
"offense_edge": 0.0201,
"opponent_offense_edge": -0.0105,
"defense_strength": -0.0006,
"opponent_defense_weakness": -0.0643,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9961,
"run_prevention": 1.0038,
"strikeout": 0.9976
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "647336",
"profile": {
"available": true,
"pitcher_id": "647336",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 406.0,
"k_percent": 24.2,
"bb_percent": 5.9,
"woba": 0.282,
"xwoba": 0.311,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 33.9,
"avg_best_speed": 76.47,
"avg_hyper_speed": 93.368,
"whiff_percent": 23.1,
"swing_percent": 49.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1555,
"command_and_miss": 0.1964,
"regression_edge": -0.8286,
"xwoba_edge": 0.0,
"barrel_edge": -0.2,
"hard_hit_edge": 0.5714,
"whiff_edge": -0.3,
"bb_edge": 0.8,
"pitch_design_score": -0.1158
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "647336",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 87.79524232123826,
"release_spin_rate": 2598.719346360736,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 87.79524232123826,
"release_spin_rate": 2598.719346360736,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.7952,
"release_spin_rate": 2598.7193,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1158,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8275,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 1.0006,
"walk_factor": 0.936,
"homer_factor": 0.9931,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "647336",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9961,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9961,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.936,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9931,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0006,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260927_ARI@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_ARI@SD | home | Randy Vásquez | Randy Vásquez | True | 5.0 | 6.0 | 3 | 1 | 1 | 0 | 5/3 | 1/0 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.00990099009901,
"WHIP": 1.2995049504950495,
"IP": 134.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.045,
"recent_avg_IP": 5.533,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.738,
"sample_weight": 1.0,
"run_prevention_factor": 1.0627,
"strikeout_factor": 0.9251,
"walk_factor": 0.948,
"homer_factor": 1.1197,
"regression_flag": "negative_pitcher_regression",
"k_percent": 15.0,
"bb_percent": 6.5,
"woba": 0.327,
"xwoba": 0.358,
"barrel_percent": 9.8,
"hard_hit_percent": 43.7,
"whiff_percent": 19.1
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681190",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 11.2,
"ER": 5.0,
"R": 5.0,
"H": 14.0,
"BB": 3.0,
"SO": 9.0,
"HR": 1.0,
"BF": 50.0,
"Pitches": 187.0
},
"per_game": {
"IP": 2.1,
"ER": 1.0,
"R": 1.0,
"H": 2.8,
"BB": 0.6,
"SO": 1.8,
"HR": 0.2,
"BF": 10.0,
"Pitches": 37.4
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.4571,
"ER_per_IP": 0.42857,
"H_per_IP": 1.2,
"BB_per_IP": 0.25714,
"SO_per_IP": 0.77143,
"HR_per_IP": 0.08571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 39.2,
"ER": 13.0,
"R": 13.0,
"H": 28.0,
"BB": 7.0,
"SO": 21.0,
"HR": 2.0,
"BF": 152.0,
"Pitches": 574.0
},
"per_game": {
"IP": 4.0,
"ER": 1.3,
"R": 1.3,
"H": 2.8,
"BB": 0.7,
"SO": 2.1,
"HR": 0.2,
"BF": 15.2,
"Pitches": 57.4
},
"rates": {
"ERA": 2.9496,
"WHIP": 0.8824,
"ER_per_IP": 0.32773,
"H_per_IP": 0.70588,
"BB_per_IP": 0.17647,
"SO_per_IP": 0.52941,
"HR_per_IP": 0.05042
}
},
"season": {
"games": 31,
"totals": {
"IP": 134.2,
"ER": 60.0,
"R": 64.0,
"H": 138.0,
"BB": 37.0,
"SO": 85.0,
"HR": 16.0,
"BF": 566.0,
"Pitches": 2158.0
},
"per_game": {
"IP": 4.1,
"ER": 1.9355,
"R": 2.0645,
"H": 4.4516,
"BB": 1.1935,
"SO": 2.7419,
"HR": 0.5161,
"BF": 18.2581,
"Pitches": 69.6129
},
"rates": {
"ERA": 4.0099,
"WHIP": 1.2995,
"ER_per_IP": 0.44554,
"H_per_IP": 1.02475,
"BB_per_IP": 0.27475,
"SO_per_IP": 0.63119,
"HR_per_IP": 0.11881
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.485,
"predicted_H": 3.564,
"predicted_BB": 0.909,
"predicted_SO": 2.508,
"predicted_HR": 0.322,
"predicted_ERA": 3.715,
"predicted_WHIP": 1.2437
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.485,
"final": 1.2868,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.564,
"final": 4.1509,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.909,
"final": 0.9462,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 2.508,
"final": 2.7091,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.322,
"final": 0.1904,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.715,
"final": 3.715,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2437,
"final": 1.2437,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 39.2,
"ER": 13,
"H": 28,
"BB": 7,
"SO": 21,
"HR": 2,
"ERA": 2.949579831932773,
"WHIP": 0.8823529411764705,
"K9": 4.76470588235294,
"HR9": 0.45378151260504196,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-19T00:00:00"
},
"recent_form_boost": 0.8145953103671955,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681190",
"player_name": "Randy V\u00e1squez",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 161,
"wins": 90,
"losses": 71,
"win_pct": 0.559,
"runs_scored": 713.0,
"runs_allowed": 677.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2236,
"avg_runs_scored": 4.4286,
"avg_runs_allowed": 4.205,
"offense_index": 0.9895,
"defense_index": 1.0643,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.4,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1826
},
"opponent": {
"team": "ARI",
"games": 161,
"wins": 86,
"losses": 75,
"win_pct": 0.5342,
"runs_scored": 735.0,
"runs_allowed": 721.0,
"run_differential": 14.0,
"run_differential_per_game": 0.087,
"avg_runs_scored": 4.5652,
"avg_runs_allowed": 4.4783,
"offense_index": 1.0201,
"defense_index": 0.9994,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 5.1,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0748
},
"edges": {
"quality_edge": 0.1078,
"offense_edge": -0.0105,
"opponent_offense_edge": 0.0201,
"defense_strength": 0.0643,
"opponent_defense_weakness": 0.0006,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0054,
"run_prevention": 0.9914,
"strikeout": 1.0016
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681190",
"profile": {
"available": true,
"pitcher_id": "681190",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 522.0,
"k_percent": 15.0,
"bb_percent": 6.5,
"woba": 0.327,
"xwoba": 0.358,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 43.7,
"avg_best_speed": 82.1,
"avg_hyper_speed": 94.8238,
"whiff_percent": 19.1,
"swing_percent": 50.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8846,
"command_and_miss": -0.625,
"regression_edge": -0.8857,
"xwoba_edge": -1.3429,
"barrel_edge": -0.5778,
"hard_hit_edge": -0.8286,
"whiff_edge": -0.8714,
"bb_edge": 0.65,
"pitch_design_score": 0.1051
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681190",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 43,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 43,
"pitch_usage": 0.0,
"release_speed": 91.73988227165782,
"release_spin_rate": 2568.7449846273253,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 43,
"pitch_usage": 0.0,
"release_speed": 91.73988227165782,
"release_spin_rate": 2568.7449846273253,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.7399,
"release_spin_rate": 2568.745,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1051,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7504,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.738,
"sample_weight": 1.0,
"run_prevention_factor": 1.0627,
"strikeout_factor": 0.9251,
"walk_factor": 0.948,
"homer_factor": 1.1197,
"woba_minus_xwoba": -0.031,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "681190",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0627,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0627,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1197,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9251,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260927_ARI@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_ATL@MIA | away | JR Ritchie | JR Ritchie | True | 4.2 | 5.2 | 3 | 3 | 4 | 1 | 6/7 | 2/2 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.788177339901478,
"WHIP": 1.463054187192118,
"IP": 67.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.933,
"recent_avg_IP": 4.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3801,
"sample_weight": 1.0,
"run_prevention_factor": 1.0323,
"strikeout_factor": 0.992,
"walk_factor": 1.092,
"homer_factor": 1.0755,
"regression_flag": "neutral",
"k_percent": 22.0,
"bb_percent": 13.7,
"woba": 0.342,
"xwoba": 0.338,
"barrel_percent": 9.6,
"hard_hit_percent": 39.6,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 487,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702275",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.1,
"ER": 12.0,
"R": 12.0,
"H": 19.0,
"BB": 11.0,
"SO": 22.0,
"HR": 5.0,
"BF": 84.0,
"Pitches": 339.0
},
"per_game": {
"IP": 3.2,
"ER": 2.4,
"R": 2.4,
"H": 3.8,
"BB": 2.2,
"SO": 4.4,
"HR": 1.0,
"BF": 16.8,
"Pitches": 67.8
},
"rates": {
"ERA": 5.8909,
"WHIP": 1.6364,
"ER_per_IP": 0.65455,
"H_per_IP": 1.03636,
"BB_per_IP": 0.6,
"SO_per_IP": 1.2,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 37.0,
"ER": 23.0,
"R": 24.0,
"H": 35.0,
"BB": 23.0,
"SO": 40.0,
"HR": 8.0,
"BF": 168.0,
"Pitches": 669.0
},
"per_game": {
"IP": 3.2,
"ER": 2.3,
"R": 2.4,
"H": 3.5,
"BB": 2.3,
"SO": 4.0,
"HR": 0.8,
"BF": 16.8,
"Pitches": 66.9
},
"rates": {
"ERA": 5.5946,
"WHIP": 1.5676,
"ER_per_IP": 0.62162,
"H_per_IP": 0.94595,
"BB_per_IP": 0.62162,
"SO_per_IP": 1.08108,
"HR_per_IP": 0.21622
}
},
"season": {
"games": 16,
"totals": {
"IP": 67.2,
"ER": 36.0,
"R": 39.0,
"H": 58.0,
"BB": 41.0,
"SO": 66.0,
"HR": 12.0,
"BF": 300.0,
"Pitches": 1191.0
},
"per_game": {
"IP": 4.1,
"ER": 2.25,
"R": 2.4375,
"H": 3.625,
"BB": 2.5625,
"SO": 4.125,
"HR": 0.75,
"BF": 18.75,
"Pitches": 74.4375
},
"rates": {
"ERA": 4.7882,
"WHIP": 1.4631,
"ER_per_IP": 0.53202,
"H_per_IP": 0.85714,
"BB_per_IP": 0.60591,
"SO_per_IP": 0.97537,
"HR_per_IP": 0.17734
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.377,
"predicted_H": 3.896,
"predicted_BB": 2.22,
"predicted_SO": 4.292,
"predicted_HR": 0.856,
"predicted_ERA": 5.3398,
"predicted_WHIP": 1.5266
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.377,
"final": 2.6577,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.896,
"final": 4.8441,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.22,
"final": 2.1209,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.292,
"final": 4.1604,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.856,
"final": 0.4703,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3398,
"final": 5.3398,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5266,
"final": 1.5266,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 37.0,
"ER": 23,
"H": 35,
"BB": 23,
"SO": 40,
"HR": 8,
"ERA": 5.594594594594595,
"WHIP": 1.5675675675675675,
"K9": 9.72972972972973,
"HR9": 1.945945945945946,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.1292898368264277,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702275",
"player_name": "JR Ritchie",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 161,
"wins": 94,
"losses": 67,
"win_pct": 0.5839,
"runs_scored": 739.0,
"runs_allowed": 621.0,
"run_differential": 118.0,
"run_differential_per_game": 0.7329,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.8571,
"offense_index": 1.0256,
"defense_index": 1.1603,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1964
},
"opponent": {
"team": "MIA",
"games": 161,
"wins": 79,
"losses": 82,
"win_pct": 0.4907,
"runs_scored": 710.0,
"runs_allowed": 709.0,
"run_differential": 1.0,
"run_differential_per_game": 0.0062,
"avg_runs_scored": 4.4099,
"avg_runs_allowed": 4.4037,
"offense_index": 0.9854,
"defense_index": 1.0163,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0071
},
"edges": {
"quality_edge": 0.2035,
"offense_edge": 0.0256,
"opponent_offense_edge": -0.0146,
"defense_strength": 0.1603,
"opponent_defense_weakness": -0.0163,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0135,
"run_prevention": 0.9715,
"strikeout": 1.0073
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702275",
"profile": {
"available": true,
"pitcher_id": "702275",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 276.0,
"k_percent": 22.0,
"bb_percent": 13.7,
"woba": 0.342,
"xwoba": 0.338,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 39.6,
"avg_best_speed": 79.4259,
"avg_hyper_speed": 93.8915,
"whiff_percent": 23.8,
"swing_percent": 42.1
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5536,
"command_and_miss": -0.3,
"regression_edge": 0.1143,
"xwoba_edge": -0.7714,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.2429,
"whiff_edge": -0.2,
"bb_edge": -1.15,
"pitch_design_score": -0.0434
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702275",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 62,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 62,
"pitch_usage": 0.0,
"release_speed": 89.08942457225857,
"release_spin_rate": 2330.1009458662215,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 62,
"pitch_usage": 0.0,
"release_speed": 89.08942457225857,
"release_spin_rate": 2330.1009458662215,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.0894,
"release_spin_rate": 2330.1009,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0434,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3098,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3801,
"sample_weight": 1.0,
"run_prevention_factor": 1.0323,
"strikeout_factor": 0.992,
"walk_factor": 1.092,
"homer_factor": 1.0755,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "702275",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0323,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0323,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.092,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0755,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.992,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260927_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_ATL@MIA | home | Janson Junk | Janson Junk | True | 4.2 | 4.2 | 0 | 3 | 1 | -2 | 3/3 | 0/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.310924369747899,
"WHIP": 1.3109243697478992,
"IP": 119.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 4.917,
"recent_avg_IP": 4.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2274,
"sample_weight": 1.0,
"run_prevention_factor": 1.0193,
"strikeout_factor": 0.912,
"walk_factor": 0.944,
"homer_factor": 1.005,
"regression_flag": "neutral",
"k_percent": 16.6,
"bb_percent": 6.3,
"woba": 0.322,
"xwoba": 0.317,
"barrel_percent": 7.0,
"hard_hit_percent": 38.5,
"whiff_percent": 15.2
},
"espn_rank": {
"rank": 220,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676083",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 11.0,
"R": 11.0,
"H": 22.0,
"BB": 6.0,
"SO": 16.0,
"HR": 2.0,
"BF": 88.0,
"Pitches": 356.0
},
"per_game": {
"IP": 4.0,
"ER": 2.2,
"R": 2.2,
"H": 4.4,
"BB": 1.2,
"SO": 3.2,
"HR": 0.4,
"BF": 17.6,
"Pitches": 71.2
},
"rates": {
"ERA": 4.7903,
"WHIP": 1.3548,
"ER_per_IP": 0.53226,
"H_per_IP": 1.06452,
"BB_per_IP": 0.29032,
"SO_per_IP": 0.77419,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 40.1,
"ER": 17.0,
"R": 18.0,
"H": 41.0,
"BB": 10.0,
"SO": 23.0,
"HR": 3.0,
"BF": 168.0,
"Pitches": 649.0
},
"per_game": {
"IP": 4.0,
"ER": 1.7,
"R": 1.8,
"H": 4.1,
"BB": 1.0,
"SO": 2.3,
"HR": 0.3,
"BF": 16.8,
"Pitches": 64.9
},
"rates": {
"ERA": 3.7934,
"WHIP": 1.2645,
"ER_per_IP": 0.42149,
"H_per_IP": 1.01653,
"BB_per_IP": 0.24793,
"SO_per_IP": 0.57025,
"HR_per_IP": 0.07438
}
},
"season": {
"games": 25,
"totals": {
"IP": 119.0,
"ER": 57.0,
"R": 62.0,
"H": 124.0,
"BB": 32.0,
"SO": 84.0,
"HR": 14.0,
"BF": 505.0,
"Pitches": 1917.0
},
"per_game": {
"IP": 4.2,
"ER": 2.28,
"R": 2.48,
"H": 4.96,
"BB": 1.28,
"SO": 3.36,
"HR": 0.56,
"BF": 20.2,
"Pitches": 76.68
},
"rates": {
"ERA": 4.3109,
"WHIP": 1.3109,
"ER_per_IP": 0.47899,
"H_per_IP": 1.04202,
"BB_per_IP": 0.26891,
"SO_per_IP": 0.70588,
"HR_per_IP": 0.11765
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.06,
"predicted_H": 4.363,
"predicted_BB": 1.221,
"predicted_SO": 3.084,
"predicted_HR": 0.432,
"predicted_ERA": 4.3902,
"predicted_WHIP": 1.3225
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.06,
"final": 2.4552,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.363,
"final": 3.79,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.221,
"final": 0.7077,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.084,
"final": 3.0487,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.432,
"final": 1.0912,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3902,
"final": 4.3902,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3225,
"final": 1.3225,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 40.1,
"ER": 17,
"H": 41,
"BB": 10,
"SO": 23,
"HR": 3,
"ERA": 3.7933884297520657,
"WHIP": 1.2644628099173554,
"K9": 5.132231404958677,
"HR9": 0.6694214876033058,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.919076524340388,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676083",
"player_name": "Janson Junk",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 161,
"wins": 79,
"losses": 82,
"win_pct": 0.4907,
"runs_scored": 710.0,
"runs_allowed": 709.0,
"run_differential": 1.0,
"run_differential_per_game": 0.0062,
"avg_runs_scored": 4.4099,
"avg_runs_allowed": 4.4037,
"offense_index": 0.9854,
"defense_index": 1.0163,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0071
},
"opponent": {
"team": "ATL",
"games": 161,
"wins": 94,
"losses": 67,
"win_pct": 0.5839,
"runs_scored": 739.0,
"runs_allowed": 621.0,
"run_differential": 118.0,
"run_differential_per_game": 0.7329,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.8571,
"offense_index": 1.0256,
"defense_index": 1.1603,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1964
},
"edges": {
"quality_edge": -0.2035,
"offense_edge": -0.0146,
"opponent_offense_edge": 0.0256,
"defense_strength": 0.0163,
"opponent_defense_weakness": -0.1603,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9913,
"run_prevention": 1.0126,
"strikeout": 0.9918
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676083",
"profile": {
"available": true,
"pitcher_id": "676083",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 448.0,
"k_percent": 16.6,
"bb_percent": 6.3,
"woba": 0.322,
"xwoba": 0.317,
"sweet_spot_percent": 29.9,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 38.5,
"avg_best_speed": 79.2265,
"avg_hyper_speed": 94.363,
"whiff_percent": 15.2,
"swing_percent": 48.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0882,
"command_and_miss": -0.7071,
"regression_edge": 0.1429,
"xwoba_edge": -0.1714,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.0857,
"whiff_edge": -1.4286,
"bb_edge": 0.7,
"pitch_design_score": -0.1048
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 52,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 87.99217715516329,
"release_spin_rate": 2229.370088419328,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 87.99217715516329,
"release_spin_rate": 2229.370088419328,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.9922,
"release_spin_rate": 2229.3701,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1048,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7487,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2274,
"sample_weight": 1.0,
"run_prevention_factor": 1.0193,
"strikeout_factor": 0.912,
"walk_factor": 0.944,
"homer_factor": 1.005,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676083",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0193,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0193,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.005,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.912,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 17,
"Pitches": 68,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_ATL@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CHC@BOS | away | Shota Imanaga | Shota Imanaga | True | 5.2 | 1.0 | -14 | 1 | 1 | 0 | 2/1 | 3/0 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.738461538461538,
"WHIP": 1.096153846153846,
"IP": 173.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.591,
"recent_avg_IP": 5.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1919,
"sample_weight": 1.0,
"run_prevention_factor": 0.9837,
"strikeout_factor": 1.0389,
"walk_factor": 0.924,
"homer_factor": 1.0296,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 5.3,
"woba": 0.308,
"xwoba": 0.301,
"barrel_percent": 9.7,
"hard_hit_percent": 36.8,
"whiff_percent": 29.6
},
"espn_rank": {
"rank": 81,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "684007",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 11.0,
"R": 11.0,
"H": 24.0,
"BB": 3.0,
"SO": 27.0,
"HR": 4.0,
"BF": 110.0,
"Pitches": 470.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 4.8,
"BB": 0.6,
"SO": 5.4,
"HR": 0.8,
"BF": 22.0,
"Pitches": 94.0
},
"rates": {
"ERA": 3.5357,
"WHIP": 0.9643,
"ER_per_IP": 0.39286,
"H_per_IP": 0.85714,
"BB_per_IP": 0.10714,
"SO_per_IP": 0.96429,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 22.0,
"R": 23.0,
"H": 49.0,
"BB": 8.0,
"SO": 58.0,
"HR": 12.0,
"BF": 215.0,
"Pitches": 914.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.3,
"H": 4.9,
"BB": 0.8,
"SO": 5.8,
"HR": 1.2,
"BF": 21.5,
"Pitches": 91.4
},
"rates": {
"ERA": 3.7834,
"WHIP": 1.0892,
"ER_per_IP": 0.42038,
"H_per_IP": 0.93631,
"BB_per_IP": 0.15287,
"SO_per_IP": 1.10828,
"HR_per_IP": 0.2293
}
},
"season": {
"games": 31,
"totals": {
"IP": 173.1,
"ER": 72.0,
"R": 74.0,
"H": 153.0,
"BB": 37.0,
"SO": 171.0,
"HR": 34.0,
"BF": 702.0,
"Pitches": 2798.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3226,
"R": 2.3871,
"H": 4.9355,
"BB": 1.1935,
"SO": 5.5161,
"HR": 1.0968,
"BF": 22.6452,
"Pitches": 90.2581
},
"rates": {
"ERA": 3.7385,
"WHIP": 1.0962,
"ER_per_IP": 0.41538,
"H_per_IP": 0.88269,
"BB_per_IP": 0.21346,
"SO_per_IP": 0.98654,
"HR_per_IP": 0.19615
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.347,
"predicted_H": 5.026,
"predicted_BB": 0.986,
"predicted_SO": 5.609,
"predicted_HR": 0.996,
"predicted_ERA": 3.795,
"predicted_WHIP": 1.08
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.347,
"final": 1.7965,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.026,
"final": 3.7893,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.986,
"final": 1.8091,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.609,
"final": 4.1341,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.996,
"final": 0.5889,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.795,
"final": 3.795,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.08,
"final": 1.08,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 22,
"H": 49,
"BB": 8,
"SO": 58,
"HR": 12,
"ERA": 3.78343949044586,
"WHIP": 1.089171974522293,
"K9": 9.97452229299363,
"HR9": 2.0636942675159236,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9135749977835633,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "684007",
"player_name": "Shota Imanaga",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 161,
"wins": 88,
"losses": 73,
"win_pct": 0.5466,
"runs_scored": 844.0,
"runs_allowed": 701.0,
"run_differential": 143.0,
"run_differential_per_game": 0.8882,
"avg_runs_scored": 5.2422,
"avg_runs_allowed": 4.354,
"offense_index": 1.1713,
"defense_index": 1.0279,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1138
},
"opponent": {
"team": "BOS",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 687.0,
"runs_allowed": 605.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5093,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 3.7578,
"offense_index": 0.9534,
"defense_index": 1.191,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 2.6,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0969
},
"edges": {
"quality_edge": 0.0169,
"offense_edge": 0.1713,
"opponent_offense_edge": -0.0466,
"defense_strength": 0.0279,
"opponent_defense_weakness": -0.191,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0034,
"run_prevention": 0.9889,
"strikeout": 1.0042
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "684007",
"profile": {
"available": true,
"pitcher_id": "684007",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 682.0,
"k_percent": 24.4,
"bb_percent": 5.3,
"woba": 0.308,
"xwoba": 0.301,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 36.8,
"avg_best_speed": 77.3483,
"avg_hyper_speed": 93.819,
"whiff_percent": 29.6,
"swing_percent": 51.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.073,
"command_and_miss": 0.5643,
"regression_edge": 0.2,
"xwoba_edge": 0.2857,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.1571,
"whiff_edge": 0.6286,
"bb_edge": 0.95,
"pitch_design_score": -0.1964
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "684007",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 86.3572383214721,
"release_spin_rate": 2029.4914560010316,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 86.3572383214721,
"release_spin_rate": 2029.4914560010316,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.3572,
"release_spin_rate": 2029.4915,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1964,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.4027,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1919,
"sample_weight": 1.0,
"run_prevention_factor": 0.9837,
"strikeout_factor": 1.0389,
"walk_factor": 0.924,
"homer_factor": 1.0296,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "684007",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9837,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9837,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0296,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0389,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -14 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260927_CHC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CHC@BOS | home | Tanner Houck | Tanner Houck | True | 1.0 | 3.0 | 6 | 4 | 3 | -1 | 8/4 | 4/0 | 3/1 | Last 10 before this game (0 available)No pregame recent-game rows were available. {
"model_context": {
"embedded_season": {
"ERA": null,
"WHIP": null,
"IP": null,
"games_started": null,
"games_pitched": null,
"role_avg_IP": null,
"recent_avg_IP": null,
"last_start_IP": null,
"projection_source": "league_average_stable_fallback"
},
"savant": {
"quality_score": null,
"sample_weight": null,
"run_prevention_factor": null,
"strikeout_factor": null,
"walk_factor": null,
"homer_factor": null,
"regression_flag": null,
"k_percent": null,
"bb_percent": null,
"woba": null,
"xwoba": null,
"barrel_percent": null,
"hard_hit_percent": null,
"whiff_percent": null
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656557",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 0,
"reference_playing_time": 0.1,
"windows": {
"last_5": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"last_10": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"season": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.1,
"predicted_ER": 0.171,
"predicted_H": 0.328,
"predicted_BB": 0.126,
"predicted_SO": 0.312,
"predicted_HR": 0.05,
"predicted_ERA": 4.6139,
"predicted_WHIP": 1.363
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7725,
"form_weight": 0.2275,
"form_reliability": 0.0,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 0.1,
"final": 0.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 0.171,
"final": 3.1289,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 0.328,
"final": 6.2546,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 0.126,
"final": 3.1187,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 0.312,
"final": 2.3885,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.05,
"final": 1.5564,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6139,
"final": 4.6139,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.363,
"final": 1.363,
"source": "form_only"
}
}
},
"recent_form_analysis": null,
"recent_form_boost": null,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 0.1,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656557",
"player_name": "Tanner Houck",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 0.1,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 1.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 687.0,
"runs_allowed": 605.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5093,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 3.7578,
"offense_index": 0.9534,
"defense_index": 1.191,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 2.6,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0969
},
"opponent": {
"team": "CHC",
"games": 161,
"wins": 88,
"losses": 73,
"win_pct": 0.5466,
"runs_scored": 844.0,
"runs_allowed": 701.0,
"run_differential": 143.0,
"run_differential_per_game": 0.8882,
"avg_runs_scored": 5.2422,
"avg_runs_allowed": 4.354,
"offense_index": 1.1713,
"defense_index": 1.0279,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1138
},
"edges": {
"quality_edge": -0.0169,
"offense_edge": -0.0466,
"opponent_offense_edge": 0.1713,
"defense_strength": 0.191,
"opponent_defense_weakness": -0.0279,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9982,
"run_prevention": 1.0092,
"strikeout": 0.9858
}
},
"simulation_box_score_stats": {
"predicted_IP": 1.0,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 15,
"Pitches": 53,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "NO_PRIOR_HISTORY",
"severity": "critical",
"title": "No prior appearances in the source dataset",
"detail": "The model had no row-level pitching history before this game; any precise box-score line should carry a strong uncertainty warning."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260927_CHC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CIN@TOR | away | Brandon Williamson | Brandon Williamson | True | 4.1 | 3.0 | -4 | 1 | 4 | 3 | 3/4 | 1/3 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.89261744966443,
"WHIP": 1.4093959731543624,
"IP": 49.2,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 4.917,
"recent_avg_IP": 4.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5793,
"sample_weight": 0.78,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9648,
"walk_factor": 1.0546,
"homer_factor": 1.0822,
"regression_flag": "neutral",
"k_percent": 15.3,
"bb_percent": 12.6,
"woba": 0.336,
"xwoba": 0.365,
"barrel_percent": 9.3,
"hard_hit_percent": 41.7,
"whiff_percent": 24.0
},
"espn_rank": {
"rank": 396,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682227",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 8.0,
"R": 11.0,
"H": 17.0,
"BB": 7.0,
"SO": 14.0,
"HR": 4.0,
"BF": 87.0,
"Pitches": 313.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 2.2,
"H": 3.4,
"BB": 1.4,
"SO": 2.8,
"HR": 0.8,
"BF": 17.4,
"Pitches": 62.6
},
"rates": {
"ERA": 3.3231,
"WHIP": 1.1077,
"ER_per_IP": 0.36923,
"H_per_IP": 0.78462,
"BB_per_IP": 0.32308,
"SO_per_IP": 0.64615,
"HR_per_IP": 0.18462
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 21.0,
"R": 24.0,
"H": 37.0,
"BB": 25.0,
"SO": 30.0,
"HR": 5.0,
"BF": 193.0,
"Pitches": 737.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1,
"R": 2.4,
"H": 3.7,
"BB": 2.5,
"SO": 3.0,
"HR": 0.5,
"BF": 19.3,
"Pitches": 73.7
},
"rates": {
"ERA": 4.2,
"WHIP": 1.3778,
"ER_per_IP": 0.46667,
"H_per_IP": 0.82222,
"BB_per_IP": 0.55556,
"SO_per_IP": 0.66667,
"HR_per_IP": 0.11111
}
},
"season": {
"games": 11,
"totals": {
"IP": 49.2,
"ER": 27.0,
"R": 30.0,
"H": 43.0,
"BB": 27.0,
"SO": 33.0,
"HR": 8.0,
"BF": 215.0,
"Pitches": 831.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4545,
"R": 2.7273,
"H": 3.9091,
"BB": 2.4545,
"SO": 3.0,
"HR": 0.7273,
"BF": 19.5455,
"Pitches": 75.5455
},
"rates": {
"ERA": 4.8926,
"WHIP": 1.4094,
"ER_per_IP": 0.54362,
"H_per_IP": 0.86577,
"BB_per_IP": 0.54362,
"SO_per_IP": 0.66443,
"HR_per_IP": 0.16107
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.154,
"predicted_H": 4.047,
"predicted_BB": 1.993,
"predicted_SO": 3.474,
"predicted_HR": 0.712,
"predicted_ERA": 4.1533,
"predicted_WHIP": 1.294
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.482,
"form_weight": 0.518,
"form_reliability": 0.6875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.154,
"final": 1.5977,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.047,
"final": 3.5423,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.993,
"final": 1.5143,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.474,
"final": 4.2096,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.712,
"final": 0.3688,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1533,
"final": 4.1533,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.294,
"final": 1.294,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 21,
"H": 37,
"BB": 25,
"SO": 30,
"HR": 5,
"ERA": 4.200000000000001,
"WHIP": 1.377777777777778,
"K9": 6.000000000000001,
"HR9": 1.0000000000000002,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9676532001897913,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682227",
"player_name": "Brandon Williamson",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 665.0,
"runs_allowed": 821.0,
"run_differential": -156.0,
"run_differential_per_game": -0.9689,
"avg_runs_scored": 4.1304,
"avg_runs_allowed": 5.0994,
"offense_index": 0.9229,
"defense_index": 0.8777,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1481
},
"opponent": {
"team": "TOR",
"games": 161,
"wins": 78,
"losses": 83,
"win_pct": 0.4845,
"runs_scored": 643.0,
"runs_allowed": 693.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3106,
"avg_runs_scored": 3.9938,
"avg_runs_allowed": 4.3043,
"offense_index": 0.8924,
"defense_index": 1.0398,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.8,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1213
},
"edges": {
"quality_edge": -0.0268,
"offense_edge": -0.0771,
"opponent_offense_edge": -0.1076,
"defense_strength": -0.1223,
"opponent_defense_weakness": -0.0398,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9996,
"run_prevention": 0.9964,
"strikeout": 1.0078
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682227",
"profile": {
"available": true,
"pitcher_id": "682227",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 195.0,
"k_percent": 15.3,
"bb_percent": 12.6,
"woba": 0.336,
"xwoba": 0.365,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 41.7,
"avg_best_speed": 77.4531,
"avg_hyper_speed": 94.5238,
"whiff_percent": 24.0,
"swing_percent": 44.2
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8486,
"command_and_miss": -0.6657,
"regression_edge": -0.8286,
"xwoba_edge": -1.5429,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.5429,
"whiff_edge": -0.1714,
"bb_edge": -0.875,
"pitch_design_score": -0.1449
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682227",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 61,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 87.27704792316935,
"release_spin_rate": 2309.9624919465377,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 87.27704792316935,
"release_spin_rate": 2309.9624919465377,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.277,
"release_spin_rate": 2309.9625,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1449,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0347,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.5793,
"sample_weight": 0.78,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9648,
"walk_factor": 1.0546,
"homer_factor": 1.0822,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "682227",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0384,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0384,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0426,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0641,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9725,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260927_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CIN@TOR | home | Max Scherzer | Max Scherzer | True | 5.0 | 7.0 | 6 | 4 | 1 | -3 | 6/6 | 2/1 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.141630901287553,
"WHIP": 1.3648068669527895,
"IP": 77.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.569,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2077,
"sample_weight": 1.0,
"run_prevention_factor": 1.0177,
"strikeout_factor": 0.9503,
"walk_factor": 1.02,
"homer_factor": 1.0127,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 10.1,
"woba": 0.33,
"xwoba": 0.32,
"barrel_percent": 8.8,
"hard_hit_percent": 33.8,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 806,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 14.0,
"R": 14.0,
"H": 20.0,
"BB": 9.0,
"SO": 25.0,
"HR": 3.0,
"BF": 112.0,
"Pitches": 422.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 4.0,
"BB": 1.8,
"SO": 5.0,
"HR": 0.6,
"BF": 22.4,
"Pitches": 84.4
},
"rates": {
"ERA": 4.5542,
"WHIP": 1.0482,
"ER_per_IP": 0.50602,
"H_per_IP": 0.72289,
"BB_per_IP": 0.3253,
"SO_per_IP": 0.90361,
"HR_per_IP": 0.10843
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 27.0,
"R": 27.0,
"H": 41.0,
"BB": 20.0,
"SO": 43.0,
"HR": 6.0,
"BF": 220.0,
"Pitches": 847.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.7,
"H": 4.1,
"BB": 2.0,
"SO": 4.3,
"HR": 0.6,
"BF": 22.0,
"Pitches": 84.7
},
"rates": {
"ERA": 4.5849,
"WHIP": 1.1509,
"ER_per_IP": 0.50943,
"H_per_IP": 0.77358,
"BB_per_IP": 0.37736,
"SO_per_IP": 0.81132,
"HR_per_IP": 0.11321
}
},
"season": {
"games": 17,
"totals": {
"IP": 77.2,
"ER": 53.0,
"R": 53.0,
"H": 72.0,
"BB": 34.0,
"SO": 61.0,
"HR": 15.0,
"BF": 337.0,
"Pitches": 1347.0
},
"per_game": {
"IP": 4.2,
"ER": 3.1176,
"R": 3.1176,
"H": 4.2353,
"BB": 2.0,
"SO": 3.5882,
"HR": 0.8824,
"BF": 19.8235,
"Pitches": 79.2353
},
"rates": {
"ERA": 6.1416,
"WHIP": 1.3648,
"ER_per_IP": 0.6824,
"H_per_IP": 0.92704,
"BB_per_IP": 0.43777,
"SO_per_IP": 0.78541,
"HR_per_IP": 0.19313
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.823,
"predicted_H": 4.361,
"predicted_BB": 1.945,
"predicted_SO": 4.574,
"predicted_HR": 0.696,
"predicted_ERA": 4.8214,
"predicted_WHIP": 1.1965
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.823,
"final": 3.348,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.361,
"final": 5.0921,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.945,
"final": 1.9695,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.574,
"final": 4.318,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.696,
"final": 0.3856,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8214,
"final": 4.8214,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1965,
"final": 1.1965,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 27,
"H": 41,
"BB": 20,
"SO": 43,
"HR": 6,
"ERA": 4.584905660377358,
"WHIP": 1.1509433962264148,
"K9": 7.301886792452829,
"HR9": 1.0188679245283017,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 1.00528422744346,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 161,
"wins": 78,
"losses": 83,
"win_pct": 0.4845,
"runs_scored": 643.0,
"runs_allowed": 693.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3106,
"avg_runs_scored": 3.9938,
"avg_runs_allowed": 4.3043,
"offense_index": 0.8924,
"defense_index": 1.0398,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.8,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1213
},
"opponent": {
"team": "CIN",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 665.0,
"runs_allowed": 821.0,
"run_differential": -156.0,
"run_differential_per_game": -0.9689,
"avg_runs_scored": 4.1304,
"avg_runs_allowed": 5.0994,
"offense_index": 0.9229,
"defense_index": 0.8777,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1481
},
"edges": {
"quality_edge": 0.0268,
"offense_edge": -0.1076,
"opponent_offense_edge": -0.0771,
"defense_strength": 0.0398,
"opponent_defense_weakness": 0.1223,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0053,
"run_prevention": 0.9823,
"strikeout": 1.007
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 314.0,
"k_percent": 18.1,
"bb_percent": 10.1,
"woba": 0.33,
"xwoba": 0.32,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 33.8,
"avg_best_speed": 76.4077,
"avg_hyper_speed": 93.3143,
"whiff_percent": 20.4,
"swing_percent": 49.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1514,
"command_and_miss": -0.5407,
"regression_edge": 0.2857,
"xwoba_edge": -0.2571,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.6857,
"bb_edge": -0.25,
"pitch_design_score": -0.1364
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.42749076681898,
"release_spin_rate": 2268.105128057084,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.42749076681898,
"release_spin_rate": 2268.105128057084,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4275,
"release_spin_rate": 2268.1051,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1364,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9746,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2077,
"sample_weight": 1.0,
"run_prevention_factor": 1.0177,
"strikeout_factor": 0.9503,
"walk_factor": 1.02,
"homer_factor": 1.0127,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "453286",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0177,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0177,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0127,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9503,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260927_CIN@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CLE@KC | away | Parker Messick | Parker Messick | True | 6.1 | 3.0 | -10 | 3 | 1 | -2 | 4/6 | 1/1 | 8/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5527272727272727,
"WHIP": 1.0418181818181818,
"IP": 183.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.914,
"recent_avg_IP": 5.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5755,
"sample_weight": 1.0,
"run_prevention_factor": 0.9511,
"strikeout_factor": 1.0263,
"walk_factor": 0.95,
"homer_factor": 0.9023,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 6.6,
"woba": 0.272,
"xwoba": 0.272,
"barrel_percent": 4.9,
"hard_hit_percent": 33.8,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 4,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 183.1,
"season_ERA": 2.553,
"season_WHIP": 1.042,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "800048",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 9.0,
"R": 9.0,
"H": 27.0,
"BB": 7.0,
"SO": 35.0,
"HR": 3.0,
"BF": 119.0,
"Pitches": 485.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 5.4,
"BB": 1.4,
"SO": 7.0,
"HR": 0.6,
"BF": 23.8,
"Pitches": 97.0
},
"rates": {
"ERA": 2.8588,
"WHIP": 1.2,
"ER_per_IP": 0.31765,
"H_per_IP": 0.95294,
"BB_per_IP": 0.24706,
"SO_per_IP": 1.23529,
"HR_per_IP": 0.10588
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 16.0,
"R": 17.0,
"H": 49.0,
"BB": 12.0,
"SO": 69.0,
"HR": 6.0,
"BF": 235.0,
"Pitches": 967.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.7,
"H": 4.9,
"BB": 1.2,
"SO": 6.9,
"HR": 0.6,
"BF": 23.5,
"Pitches": 96.7
},
"rates": {
"ERA": 2.4828,
"WHIP": 1.0517,
"ER_per_IP": 0.27586,
"H_per_IP": 0.84483,
"BB_per_IP": 0.2069,
"SO_per_IP": 1.18966,
"HR_per_IP": 0.10345
}
},
"season": {
"games": 31,
"totals": {
"IP": 183.1,
"ER": 52.0,
"R": 56.0,
"H": 143.0,
"BB": 48.0,
"SO": 191.0,
"HR": 17.0,
"BF": 731.0,
"Pitches": 2884.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6774,
"R": 1.8065,
"H": 4.6129,
"BB": 1.5484,
"SO": 6.1613,
"HR": 0.5484,
"BF": 23.5806,
"Pitches": 93.0323
},
"rates": {
"ERA": 2.5527,
"WHIP": 1.0418,
"ER_per_IP": 0.28364,
"H_per_IP": 0.78,
"BB_per_IP": 0.26182,
"SO_per_IP": 1.04182,
"HR_per_IP": 0.09273
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.883,
"predicted_H": 5.164,
"predicted_BB": 1.477,
"predicted_SO": 6.617,
"predicted_HR": 0.628,
"predicted_ERA": 2.9365,
"predicted_WHIP": 1.1507
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.883,
"final": 2.7482,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.164,
"final": 4.6883,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.477,
"final": 1.2821,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.617,
"final": 7.1822,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.628,
"final": 1.1887,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9365,
"final": 2.9365,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1507,
"final": 1.1507,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 16,
"H": 49,
"BB": 12,
"SO": 69,
"HR": 6,
"ERA": 2.482758620689655,
"WHIP": 1.0517241379310343,
"K9": 10.706896551724137,
"HR9": 0.9310344827586206,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.7663122040212089,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.1,
"delta": 0.1,
"percent_delta": 0.0167,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.1,
"delta": 0.1,
"percent_delta": 0.0167,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 161,
"wins": 85,
"losses": 76,
"win_pct": 0.528,
"runs_scored": 676.0,
"runs_allowed": 664.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0745,
"avg_runs_scored": 4.1988,
"avg_runs_allowed": 4.1242,
"offense_index": 0.9382,
"defense_index": 1.0852,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.173
},
"opponent": {
"team": "KC",
"games": 161,
"wins": 68,
"losses": 93,
"win_pct": 0.4224,
"runs_scored": 687.0,
"runs_allowed": 808.0,
"run_differential": -121.0,
"run_differential_per_game": -0.7516,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 5.0186,
"offense_index": 0.9534,
"defense_index": 0.8918,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 7.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.2633
},
"edges": {
"quality_edge": 0.4363,
"offense_edge": -0.0618,
"opponent_offense_edge": -0.0466,
"defense_strength": 0.0852,
"opponent_defense_weakness": 0.1082,
"recent_win_pct_edge": 0.7
},
"player_factors": {
"ip": 1.0219,
"run_prevention": 0.9622,
"strikeout": 1.0168
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 705.0,
"k_percent": 26.1,
"bb_percent": 6.6,
"woba": 0.272,
"xwoba": 0.272,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 33.8,
"avg_best_speed": 76.152,
"avg_hyper_speed": 93.4301,
"whiff_percent": 25.7,
"swing_percent": 48.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8336,
"command_and_miss": 0.4136,
"regression_edge": 0.0,
"xwoba_edge": 1.1143,
"barrel_edge": 0.5111,
"hard_hit_edge": 0.5857,
"whiff_edge": 0.0714,
"bb_edge": 0.625,
"pitch_design_score": 0.0142
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.1175,
"release_spin_rate": 2107.0954,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0142,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1014,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.5755,
"sample_weight": 1.0,
"run_prevention_factor": 0.9511,
"strikeout_factor": 1.0263,
"walk_factor": 0.95,
"homer_factor": 0.9023,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800048",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9511,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9511,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.95,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9023,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0263,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260927_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_CLE@KC | home | Daniel Lynch IV | Daniel Lynch IV | True | 5.1 | 5.1 | 0 | 1 | 2 | 1 | 3/7 | 3/0 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.128099173553719,
"WHIP": 1.140495867768595,
"IP": 80.2,
"games_started": null,
"games_pitched": 55,
"role_avg_IP": 3.852,
"recent_avg_IP": 4.467,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2567,
"sample_weight": 1.0,
"run_prevention_factor": 1.0218,
"strikeout_factor": 0.9514,
"walk_factor": 0.974,
"homer_factor": 1.0095,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.2,
"bb_percent": 7.8,
"woba": 0.293,
"xwoba": 0.327,
"barrel_percent": 6.8,
"hard_hit_percent": 38.4,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 269,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 80.2,
"season_ERA": 4.128,
"season_WHIP": 1.14,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.587,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7684,
"prior_weight": 0.2316
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663738",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 55,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 18.0,
"R": 18.0,
"H": 23.0,
"BB": 9.0,
"SO": 11.0,
"HR": 5.0,
"BF": 99.0,
"Pitches": 371.0
},
"per_game": {
"IP": 4.1,
"ER": 3.6,
"R": 3.6,
"H": 4.6,
"BB": 1.8,
"SO": 2.2,
"HR": 1.0,
"BF": 19.8,
"Pitches": 74.2
},
"rates": {
"ERA": 7.2537,
"WHIP": 1.4328,
"ER_per_IP": 0.80597,
"H_per_IP": 1.02985,
"BB_per_IP": 0.40299,
"SO_per_IP": 0.49254,
"HR_per_IP": 0.22388
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 35.2,
"ER": 27.0,
"R": 28.0,
"H": 36.0,
"BB": 14.0,
"SO": 20.0,
"HR": 7.0,
"BF": 155.0,
"Pitches": 560.0
},
"per_game": {
"IP": 3.2,
"ER": 2.7,
"R": 2.8,
"H": 3.6,
"BB": 1.4,
"SO": 2.0,
"HR": 0.7,
"BF": 15.5,
"Pitches": 56.0
},
"rates": {
"ERA": 6.8131,
"WHIP": 1.4019,
"ER_per_IP": 0.75701,
"H_per_IP": 1.00935,
"BB_per_IP": 0.39252,
"SO_per_IP": 0.56075,
"HR_per_IP": 0.19626
}
},
"season": {
"games": 55,
"totals": {
"IP": 80.2,
"ER": 37.0,
"R": 41.0,
"H": 66.0,
"BB": 26.0,
"SO": 54.0,
"HR": 9.0,
"BF": 334.0,
"Pitches": 1224.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6727,
"R": 0.7455,
"H": 1.2,
"BB": 0.4727,
"SO": 0.9818,
"HR": 0.1636,
"BF": 6.0727,
"Pitches": 22.2545
},
"rates": {
"ERA": 4.1281,
"WHIP": 1.1405,
"ER_per_IP": 0.45868,
"H_per_IP": 0.81818,
"BB_per_IP": 0.32231,
"SO_per_IP": 0.66942,
"HR_per_IP": 0.11157
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.635,
"predicted_H": 3.85,
"predicted_BB": 1.5,
"predicted_SO": 2.515,
"predicted_HR": 0.714,
"predicted_ERA": 6.0435,
"predicted_WHIP": 1.3634
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4479,
"form_weight": 0.5521,
"form_reliability": 0.7684,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.587,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7684,
"prior_weight": 0.2316
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.635,
"final": 1.9028,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.85,
"final": 3.4693,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.5,
"final": 2.1718,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.515,
"final": 3.6279,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.714,
"final": 0.8421,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.0435,
"final": 6.0435,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3634,
"final": 1.3634,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 35.2,
"ER": 27,
"H": 36,
"BB": 14,
"SO": 20,
"HR": 7,
"ERA": 6.813084112149533,
"WHIP": 1.4018691588785048,
"K9": 5.046728971962617,
"HR9": 1.766355140186916,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.2622274473341317,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.587,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7684,
"prior_weight": 0.2316
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663738",
"player_name": "Daniel Lynch IV",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 161,
"wins": 68,
"losses": 93,
"win_pct": 0.4224,
"runs_scored": 687.0,
"runs_allowed": 808.0,
"run_differential": -121.0,
"run_differential_per_game": -0.7516,
"avg_runs_scored": 4.2671,
"avg_runs_allowed": 5.0186,
"offense_index": 0.9534,
"defense_index": 0.8918,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 7.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.2633
},
"opponent": {
"team": "CLE",
"games": 161,
"wins": 85,
"losses": 76,
"win_pct": 0.528,
"runs_scored": 676.0,
"runs_allowed": 664.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0745,
"avg_runs_scored": 4.1988,
"avg_runs_allowed": 4.1242,
"offense_index": 0.9382,
"defense_index": 1.0852,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.173
},
"edges": {
"quality_edge": -0.4363,
"offense_edge": -0.0466,
"opponent_offense_edge": -0.0618,
"defense_strength": -0.1082,
"opponent_defense_weakness": -0.0852,
"recent_win_pct_edge": -0.7
},
"player_factors": {
"ip": 0.9818,
"run_prevention": 1.0227,
"strikeout": 0.9919
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663738",
"profile": {
"available": true,
"pitcher_id": "663738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 304.0,
"k_percent": 16.2,
"bb_percent": 7.8,
"woba": 0.293,
"xwoba": 0.327,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 38.4,
"avg_best_speed": 78.9256,
"avg_hyper_speed": 94.006,
"whiff_percent": 22.5,
"swing_percent": 46.6
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0783,
"command_and_miss": -0.4429,
"regression_edge": -0.9714,
"xwoba_edge": -0.4571,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.3857,
"bb_edge": 0.325,
"pitch_design_score": -0.0068
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.74268690185157,
"release_spin_rate": 2086.8602213887807,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.74268690185157,
"release_spin_rate": 2086.8602213887807,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.7427,
"release_spin_rate": 2086.8602,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0068,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0485,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2567,
"sample_weight": 1.0,
"run_prevention_factor": 1.0218,
"strikeout_factor": 0.9514,
"walk_factor": 0.974,
"homer_factor": 1.0095,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "663738",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0218,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0218,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0095,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9514,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260927_CLE@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_COL@CHW | away | Kyle Freeland | Kyle Freeland | True | 4.1 | 4.0 | -1 | 5 | 4 | -1 | 6/7 | 1/0 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.578680203045685,
"WHIP": 1.515228426395939,
"IP": 131.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.253,
"recent_avg_IP": 4.6,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5789,
"sample_weight": 1.0,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9594,
"walk_factor": 0.916,
"homer_factor": 1.141,
"regression_flag": "neutral",
"k_percent": 17.9,
"bb_percent": 4.9,
"woba": 0.382,
"xwoba": 0.354,
"barrel_percent": 11.1,
"hard_hit_percent": 44.0,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 668,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607536",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 14.0,
"R": 16.0,
"H": 32.0,
"BB": 6.0,
"SO": 13.0,
"HR": 6.0,
"BF": 107.0,
"Pitches": 381.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 3.2,
"H": 6.4,
"BB": 1.2,
"SO": 2.6,
"HR": 1.2,
"BF": 21.4,
"Pitches": 76.2
},
"rates": {
"ERA": 5.4783,
"WHIP": 1.6522,
"ER_per_IP": 0.6087,
"H_per_IP": 1.3913,
"BB_per_IP": 0.26087,
"SO_per_IP": 0.56522,
"HR_per_IP": 0.26087
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 34.0,
"R": 36.0,
"H": 65.0,
"BB": 11.0,
"SO": 38.0,
"HR": 11.0,
"BF": 238.0,
"Pitches": 838.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.6,
"H": 6.5,
"BB": 1.1,
"SO": 3.8,
"HR": 1.1,
"BF": 23.8,
"Pitches": 83.8
},
"rates": {
"ERA": 5.6319,
"WHIP": 1.3988,
"ER_per_IP": 0.62577,
"H_per_IP": 1.19632,
"BB_per_IP": 0.20245,
"SO_per_IP": 0.69939,
"HR_per_IP": 0.20245
}
},
"season": {
"games": 25,
"totals": {
"IP": 131.1,
"ER": 96.0,
"R": 100.0,
"H": 170.0,
"BB": 29.0,
"SO": 106.0,
"HR": 27.0,
"BF": 593.0,
"Pitches": 2125.0
},
"per_game": {
"IP": 5.1,
"ER": 3.84,
"R": 4.0,
"H": 6.8,
"BB": 1.16,
"SO": 4.24,
"HR": 1.08,
"BF": 23.72,
"Pitches": 85.0
},
"rates": {
"ERA": 6.5787,
"WHIP": 1.5152,
"ER_per_IP": 0.73096,
"H_per_IP": 1.29442,
"BB_per_IP": 0.22081,
"SO_per_IP": 0.80711,
"HR_per_IP": 0.20558
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.107,
"predicted_H": 6.286,
"predicted_BB": 1.292,
"predicted_SO": 3.552,
"predicted_HR": 1.086,
"predicted_ERA": 5.5624,
"predicted_WHIP": 1.5073
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 3.107,
"final": 4.3233,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.286,
"final": 5.7453,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.292,
"final": 1.1692,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.552,
"final": 5.0016,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.086,
"final": 1.0498,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5624,
"final": 5.5624,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5073,
"final": 1.5073,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 34,
"H": 65,
"BB": 11,
"SO": 38,
"HR": 11,
"ERA": 5.631901840490798,
"WHIP": 1.3987730061349695,
"K9": 6.294478527607363,
"HR9": 1.8220858895705523,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.1292670379539358,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 6,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 6,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607536",
"player_name": "Kyle Freeland",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 161,
"wins": 58,
"losses": 103,
"win_pct": 0.3602,
"runs_scored": 750.0,
"runs_allowed": 940.0,
"run_differential": -190.0,
"run_differential_per_game": -1.1801,
"avg_runs_scored": 4.6584,
"avg_runs_allowed": 5.8385,
"offense_index": 1.0409,
"defense_index": 0.7665,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.4,
"run_differential": -26.0
},
"available": true,
"quality_score": -0.3689
},
"opponent": {
"team": "CHW",
"games": 161,
"wins": 83,
"losses": 78,
"win_pct": 0.5155,
"runs_scored": 772.0,
"runs_allowed": 718.0,
"run_differential": 54.0,
"run_differential_per_game": 0.3354,
"avg_runs_scored": 4.795,
"avg_runs_allowed": 4.4596,
"offense_index": 1.0714,
"defense_index": 1.0036,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.7,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.0894
},
"edges": {
"quality_edge": -0.4583,
"offense_edge": 0.0409,
"opponent_offense_edge": 0.0714,
"defense_strength": -0.2335,
"opponent_defense_weakness": -0.0036,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9718,
"run_prevention": 1.0577,
"strikeout": 0.9805
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607536",
"profile": {
"available": true,
"pitcher_id": "607536",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 17.9,
"bb_percent": 4.9,
"woba": 0.382,
"xwoba": 0.354,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 44.0,
"avg_best_speed": 79.9509,
"avg_hyper_speed": 95.3359,
"whiff_percent": 22.2,
"swing_percent": 50.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.0601,
"command_and_miss": -0.2036,
"regression_edge": 0.8,
"xwoba_edge": -1.2286,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.4286,
"bb_edge": 1.05,
"pitch_design_score": -0.1543
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607536",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.10896327807998,
"release_spin_rate": 2265.301600180975,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.10896327807998,
"release_spin_rate": 2265.301600180975,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.109,
"release_spin_rate": 2265.3016,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1543,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.102,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.5789,
"sample_weight": 1.0,
"run_prevention_factor": 1.0492,
"strikeout_factor": 0.9594,
"walk_factor": 0.916,
"homer_factor": 1.141,
"woba_minus_xwoba": 0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607536",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0492,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0492,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.916,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.141,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9594,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260927_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_COL@CHW | home | Anthony Kay | Anthony Kay | True | 4.2 | 5.0 | 1 | 3 | 1 | -2 | 5/5 | 1/2 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.529411764705882,
"WHIP": 1.3725490196078431,
"IP": 153.0,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 4.867,
"recent_avg_IP": 4.2,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3608,
"sample_weight": 1.0,
"run_prevention_factor": 1.0307,
"strikeout_factor": 0.9646,
"walk_factor": 0.974,
"homer_factor": 1.0524,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 7.8,
"woba": 0.34,
"xwoba": 0.342,
"barrel_percent": 8.3,
"hard_hit_percent": 39.0,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 171,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641743",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 17.0,
"R": 20.0,
"H": 26.0,
"BB": 7.0,
"SO": 17.0,
"HR": 3.0,
"BF": 101.0,
"Pitches": 369.0
},
"per_game": {
"IP": 4.1,
"ER": 3.4,
"R": 4.0,
"H": 5.2,
"BB": 1.4,
"SO": 3.4,
"HR": 0.6,
"BF": 20.2,
"Pitches": 73.8
},
"rates": {
"ERA": 7.2857,
"WHIP": 1.5714,
"ER_per_IP": 0.80952,
"H_per_IP": 1.2381,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.80952,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 28.0,
"R": 31.0,
"H": 56.0,
"BB": 13.0,
"SO": 38.0,
"HR": 7.0,
"BF": 222.0,
"Pitches": 820.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 3.1,
"H": 5.6,
"BB": 1.3,
"SO": 3.8,
"HR": 0.7,
"BF": 22.2,
"Pitches": 82.0
},
"rates": {
"ERA": 5.1081,
"WHIP": 1.3986,
"ER_per_IP": 0.56757,
"H_per_IP": 1.13514,
"BB_per_IP": 0.26351,
"SO_per_IP": 0.77027,
"HR_per_IP": 0.14189
}
},
"season": {
"games": 32,
"totals": {
"IP": 153.0,
"ER": 77.0,
"R": 84.0,
"H": 156.0,
"BB": 54.0,
"SO": 125.0,
"HR": 21.0,
"BF": 689.0,
"Pitches": 2714.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4062,
"R": 2.625,
"H": 4.875,
"BB": 1.6875,
"SO": 3.9062,
"HR": 0.6562,
"BF": 21.5312,
"Pitches": 84.8125
},
"rates": {
"ERA": 4.5294,
"WHIP": 1.3725,
"ER_per_IP": 0.50327,
"H_per_IP": 1.01961,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.81699,
"HR_per_IP": 0.13725
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.983,
"predicted_H": 5.263,
"predicted_BB": 1.493,
"predicted_SO": 3.785,
"predicted_HR": 0.661,
"predicted_ERA": 5.7888,
"predicted_WHIP": 1.4565
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.983,
"final": 2.9899,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.263,
"final": 5.1559,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.493,
"final": 1.2923,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.785,
"final": 3.8725,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.661,
"final": 0.799,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7888,
"final": 5.7888,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4565,
"final": 1.4565,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 28,
"H": 56,
"BB": 13,
"SO": 38,
"HR": 7,
"ERA": 5.108108108108108,
"WHIP": 1.3986486486486487,
"K9": 6.9324324324324325,
"HR9": 1.277027027027027,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.070337134123725,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641743",
"player_name": "Anthony Kay",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 161,
"wins": 83,
"losses": 78,
"win_pct": 0.5155,
"runs_scored": 772.0,
"runs_allowed": 718.0,
"run_differential": 54.0,
"run_differential_per_game": 0.3354,
"avg_runs_scored": 4.795,
"avg_runs_allowed": 4.4596,
"offense_index": 1.0714,
"defense_index": 1.0036,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.7,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.0894
},
"opponent": {
"team": "COL",
"games": 161,
"wins": 58,
"losses": 103,
"win_pct": 0.3602,
"runs_scored": 750.0,
"runs_allowed": 940.0,
"run_differential": -190.0,
"run_differential_per_game": -1.1801,
"avg_runs_scored": 4.6584,
"avg_runs_allowed": 5.8385,
"offense_index": 1.0409,
"defense_index": 0.7665,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.4,
"run_differential": -26.0
},
"available": true,
"quality_score": -0.3689
},
"edges": {
"quality_edge": 0.4583,
"offense_edge": 0.0714,
"opponent_offense_edge": 0.0409,
"defense_strength": 0.0036,
"opponent_defense_weakness": 0.2335,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0168,
"run_prevention": 0.9833,
"strikeout": 1.0105
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641743",
"profile": {
"available": true,
"pitcher_id": "641743",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 659.0,
"k_percent": 18.1,
"bb_percent": 7.8,
"woba": 0.34,
"xwoba": 0.342,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 39.0,
"avg_best_speed": 76.6453,
"avg_hyper_speed": 94.2602,
"whiff_percent": 22.9,
"swing_percent": 47.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.496,
"command_and_miss": -0.3007,
"regression_edge": -0.0571,
"xwoba_edge": -0.8857,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.1571,
"whiff_edge": -0.3286,
"bb_edge": 0.325,
"pitch_design_score": 0.0101
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 90.04480777448889,
"release_spin_rate": 2295.850070240423,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 90.04480777448889,
"release_spin_rate": 2295.850070240423,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.0448,
"release_spin_rate": 2295.8501,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0101,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0724,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3608,
"sample_weight": 1.0,
"run_prevention_factor": 1.0307,
"strikeout_factor": 0.9646,
"walk_factor": 0.974,
"homer_factor": 1.0524,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641743",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0307,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0307,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0524,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9646,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_COL@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_HOU@OAK | away | Peter Lambert | Peter Lambert | True | 5.1 | 2.0 | -10 | 4 | 0 | -4 | 7/2 | 3/0 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8655097613882865,
"WHIP": 1.2559652928416487,
"IP": 153.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.488,
"recent_avg_IP": 5.133,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1721,
"sample_weight": 1.0,
"run_prevention_factor": 0.9854,
"strikeout_factor": 1.0091,
"walk_factor": 0.998,
"homer_factor": 0.9704,
"regression_flag": "neutral",
"k_percent": 23.3,
"bb_percent": 9.0,
"woba": 0.302,
"xwoba": 0.298,
"barrel_percent": 6.9,
"hard_hit_percent": 35.6,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": 40,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663567",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 14.0,
"R": 14.0,
"H": 28.0,
"BB": 8.0,
"SO": 28.0,
"HR": 4.0,
"BF": 114.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 2.8,
"H": 5.6,
"BB": 1.6,
"SO": 5.6,
"HR": 0.8,
"BF": 22.8,
"Pitches": 87.2
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.4026,
"ER_per_IP": 0.54545,
"H_per_IP": 1.09091,
"BB_per_IP": 0.31169,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 31.0,
"R": 33.0,
"H": 55.0,
"BB": 20.0,
"SO": 53.0,
"HR": 6.0,
"BF": 227.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1,
"R": 3.3,
"H": 5.5,
"BB": 2.0,
"SO": 5.3,
"HR": 0.6,
"BF": 22.7,
"Pitches": 89.3
},
"rates": {
"ERA": 5.5066,
"WHIP": 1.4803,
"ER_per_IP": 0.61184,
"H_per_IP": 1.08553,
"BB_per_IP": 0.39474,
"SO_per_IP": 1.04605,
"HR_per_IP": 0.11842
}
},
"season": {
"games": 28,
"totals": {
"IP": 153.2,
"ER": 66.0,
"R": 68.0,
"H": 134.0,
"BB": 59.0,
"SO": 153.0,
"HR": 17.0,
"BF": 656.0,
"Pitches": 2602.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3571,
"R": 2.4286,
"H": 4.7857,
"BB": 2.1071,
"SO": 5.4643,
"HR": 0.6071,
"BF": 23.4286,
"Pitches": 92.9286
},
"rates": {
"ERA": 3.8655,
"WHIP": 1.256,
"ER_per_IP": 0.4295,
"H_per_IP": 0.87202,
"BB_per_IP": 0.38395,
"SO_per_IP": 0.99566,
"HR_per_IP": 0.11063
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.76,
"predicted_H": 5.29,
"predicted_BB": 1.833,
"predicted_SO": 5.301,
"predicted_HR": 0.695,
"predicted_ERA": 4.8647,
"predicted_WHIP": 1.3948
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.76,
"final": 3.2734,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.29,
"final": 5.998,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.833,
"final": 2.3161,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.301,
"final": 5.1764,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.695,
"final": 0.4073,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8647,
"final": 4.8647,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3948,
"final": 1.3948,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 31,
"H": 55,
"BB": 20,
"SO": 53,
"HR": 6,
"ERA": 5.506578947368421,
"WHIP": 1.480263157894737,
"K9": 9.414473684210527,
"HR9": 1.0657894736842106,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 1.1172054662716624,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 725.0,
"runs_allowed": 766.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2547,
"avg_runs_scored": 4.5031,
"avg_runs_allowed": 4.7578,
"offense_index": 1.0062,
"defense_index": 0.9407,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.2,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0689
},
"opponent": {
"team": "OAK",
"games": 161,
"wins": 64,
"losses": 97,
"win_pct": 0.3975,
"runs_scored": 699.0,
"runs_allowed": 928.0,
"run_differential": -229.0,
"run_differential_per_game": -1.4224,
"avg_runs_scored": 4.3416,
"avg_runs_allowed": 5.764,
"offense_index": 0.9701,
"defense_index": 0.7765,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 6.7,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.3319
},
"edges": {
"quality_edge": 0.263,
"offense_edge": 0.0062,
"opponent_offense_edge": -0.0299,
"defense_strength": -0.0593,
"opponent_defense_weakness": 0.2235,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0099,
"run_prevention": 0.988,
"strikeout": 1.0103
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 613.0,
"k_percent": 23.3,
"bb_percent": 9.0,
"woba": 0.302,
"xwoba": 0.298,
"sweet_spot_percent": 34.0,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 35.6,
"avg_best_speed": 77.4733,
"avg_hyper_speed": 93.4972,
"whiff_percent": 25.5,
"swing_percent": 48.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2426,
"command_and_miss": 0.1036,
"regression_edge": 0.1143,
"xwoba_edge": 0.3714,
"barrel_edge": 0.0667,
"hard_hit_edge": 0.3286,
"whiff_edge": 0.0429,
"bb_edge": 0.025,
"pitch_design_score": -0.0267
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.38687519162656,
"release_spin_rate": 2204.8030078841884,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.38687519162656,
"release_spin_rate": 2204.8030078841884,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.3869,
"release_spin_rate": 2204.803,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0267,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1908,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1721,
"sample_weight": 1.0,
"run_prevention_factor": 0.9854,
"strikeout_factor": 1.0091,
"walk_factor": 0.998,
"homer_factor": 0.9704,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663567",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9854,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9854,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9704,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0091,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260927_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_HOU@OAK | home | Seth Johnson | Seth Johnson | True | 4.0 | 1.2 | -7 | 7 | 0 | -7 | 8/1 | 1/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.0625,
"WHIP": 1.5625,
"IP": 32.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 1.231,
"recent_avg_IP": 1.8,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1625,
"sample_weight": 0.516,
"run_prevention_factor": 1.0138,
"strikeout_factor": 1.0153,
"walk_factor": 1.0299,
"homer_factor": 1.0726,
"regression_flag": "positive_pitcher_regression",
"k_percent": 25.3,
"bb_percent": 12.0,
"woba": 0.373,
"xwoba": 0.331,
"barrel_percent": 12.0,
"hard_hit_percent": 44.6,
"whiff_percent": 27.1
},
"espn_rank": {
"rank": 716,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.58,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5682,
"prior_weight": 0.4318
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686751",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.0,
"ER": 5.0,
"R": 5.0,
"H": 11.0,
"BB": 1.0,
"SO": 8.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 121.0
},
"per_game": {
"IP": 1.2,
"ER": 1.0,
"R": 1.0,
"H": 2.2,
"BB": 0.2,
"SO": 1.6,
"HR": 0.4,
"BF": 7.6,
"Pitches": 24.2
},
"rates": {
"ERA": 5.0,
"WHIP": 1.3333,
"ER_per_IP": 0.55556,
"H_per_IP": 1.22222,
"BB_per_IP": 0.11111,
"SO_per_IP": 0.88889,
"HR_per_IP": 0.22222
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 15.2,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 3.0,
"SO": 18.0,
"HR": 3.0,
"BF": 66.0,
"Pitches": 235.0
},
"per_game": {
"IP": 1.2,
"ER": 0.8,
"R": 0.8,
"H": 1.8,
"BB": 0.3,
"SO": 1.8,
"HR": 0.3,
"BF": 6.6,
"Pitches": 23.5
},
"rates": {
"ERA": 4.5957,
"WHIP": 1.3404,
"ER_per_IP": 0.51064,
"H_per_IP": 1.14894,
"BB_per_IP": 0.19149,
"SO_per_IP": 1.14894,
"HR_per_IP": 0.19149
}
},
"season": {
"games": 26,
"totals": {
"IP": 32.0,
"ER": 18.0,
"R": 20.0,
"H": 33.0,
"BB": 17.0,
"SO": 38.0,
"HR": 4.0,
"BF": 146.0,
"Pitches": 558.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6923,
"R": 0.7692,
"H": 1.2692,
"BB": 0.6538,
"SO": 1.4615,
"HR": 0.1538,
"BF": 5.6154,
"Pitches": 21.4615
},
"rates": {
"ERA": 5.0625,
"WHIP": 1.5625,
"ER_per_IP": 0.5625,
"H_per_IP": 1.03125,
"BB_per_IP": 0.53125,
"SO_per_IP": 1.1875,
"HR_per_IP": 0.125
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.394,
"predicted_H": 2.855,
"predicted_BB": 0.766,
"predicted_SO": 2.623,
"predicted_HR": 0.457,
"predicted_ERA": 4.76,
"predicted_WHIP": 1.3736
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5324,
"form_weight": 0.4676,
"form_reliability": 0.5682,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.58,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5682,
"prior_weight": 0.4318
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 2.2,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 8.0,
"form": 1.394,
"final": 4.9113,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 2.855,
"final": 5.0619,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.766,
"final": 0.8906,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.623,
"final": 3.3562,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.457,
"final": 1.811,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.76,
"final": 4.76,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3736,
"final": 1.3736,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 13.2,
"ER": 7,
"H": 15,
"BB": 3,
"SO": 14,
"HR": 2,
"ERA": 4.609756097560976,
"WHIP": 1.3170731707317074,
"K9": 9.219512195121952,
"HR9": 1.3170731707317074,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 1.0055861390205278,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 8.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.58,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5682,
"prior_weight": 0.4318
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686751",
"player_name": "Seth Johnson",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 8.0,
"predicted_H": 7.0,
"predicted_HR": 3.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 8.0,
"predicted_H": 8.0,
"predicted_HR": 3.0,
"predicted_IP": 4.0,
"predicted_R": 8.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "boosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 161,
"wins": 64,
"losses": 97,
"win_pct": 0.3975,
"runs_scored": 699.0,
"runs_allowed": 928.0,
"run_differential": -229.0,
"run_differential_per_game": -1.4224,
"avg_runs_scored": 4.3416,
"avg_runs_allowed": 5.764,
"offense_index": 0.9701,
"defense_index": 0.7765,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 6.7,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.3319
},
"opponent": {
"team": "HOU",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 725.0,
"runs_allowed": 766.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2547,
"avg_runs_scored": 4.5031,
"avg_runs_allowed": 4.7578,
"offense_index": 1.0062,
"defense_index": 0.9407,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.2,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0689
},
"edges": {
"quality_edge": -0.263,
"offense_edge": -0.0299,
"opponent_offense_edge": 0.0062,
"defense_strength": -0.2235,
"opponent_defense_weakness": 0.0593,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9825,
"run_prevention": 1.0365,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686751",
"profile": {
"available": true,
"pitcher_id": "686751",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 129.0,
"k_percent": 25.3,
"bb_percent": 12.0,
"woba": 0.373,
"xwoba": 0.331,
"sweet_spot_percent": 41.3,
"barrel_batted_rate": 12.0,
"hard_hit_percent": 44.6,
"avg_best_speed": 79.2113,
"avg_hyper_speed": 94.2448,
"whiff_percent": 27.1,
"swing_percent": 46.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8776,
"command_and_miss": 0.1621,
"regression_edge": 1.2,
"xwoba_edge": -0.5714,
"barrel_edge": -1.0667,
"hard_hit_edge": -0.9571,
"whiff_edge": 0.2714,
"bb_edge": -0.725,
"pitch_design_score": 0.1807
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686751",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 22,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 93.09071620904594,
"release_spin_rate": 2440.9411506876427,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 93.09071620904594,
"release_spin_rate": 2440.9411506876427,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.0907,
"release_spin_rate": 2440.9412,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1807,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2907,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1625,
"sample_weight": 0.516,
"run_prevention_factor": 1.0138,
"strikeout_factor": 1.0153,
"walk_factor": 1.0299,
"homer_factor": 1.0726,
"woba_minus_xwoba": 0.042,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "686751",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0071,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0071,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0154,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0375,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0079,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 8,
"predicted_R": 8,
"predicted_ER": 8,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 21,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 7",
"detail": "Actual minus predicted earned runs was -7; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was -7."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 7 ER."
}
],
"provenance": {
"prediction": "output/games/20260927_HOU@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAA@SEA | away | Yusei Kikuchi | Yusei Kikuchi | True | 5.0 | 5.0 | 0 | 4 | 3 | -1 | 6/6 | 1/1 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.882978723404255,
"WHIP": 1.547872340425532,
"IP": 62.2,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 4.821,
"recent_avg_IP": 5.333,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4306,
"sample_weight": 1.0,
"run_prevention_factor": 1.0366,
"strikeout_factor": 0.9886,
"walk_factor": 1.024,
"homer_factor": 1.1045,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 10.3,
"woba": 0.349,
"xwoba": 0.343,
"barrel_percent": 8.9,
"hard_hit_percent": 46.1,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 284,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "579328",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 9.0,
"R": 10.0,
"H": 26.0,
"BB": 14.0,
"SO": 23.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 456.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 2.0,
"H": 5.2,
"BB": 2.8,
"SO": 4.6,
"HR": 0.4,
"BF": 23.4,
"Pitches": 91.2
},
"rates": {
"ERA": 3.0375,
"WHIP": 1.5,
"ER_per_IP": 0.3375,
"H_per_IP": 0.975,
"BB_per_IP": 0.525,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 23.0,
"R": 24.0,
"H": 48.0,
"BB": 23.0,
"SO": 44.0,
"HR": 6.0,
"BF": 212.0,
"Pitches": 838.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3,
"R": 2.4,
"H": 4.8,
"BB": 2.3,
"SO": 4.4,
"HR": 0.6,
"BF": 21.2,
"Pitches": 83.8
},
"rates": {
"ERA": 4.3125,
"WHIP": 1.4792,
"ER_per_IP": 0.47917,
"H_per_IP": 1.0,
"BB_per_IP": 0.47917,
"SO_per_IP": 0.91667,
"HR_per_IP": 0.125
}
},
"season": {
"games": 13,
"totals": {
"IP": 62.2,
"ER": 34.0,
"R": 35.0,
"H": 68.0,
"BB": 29.0,
"SO": 60.0,
"HR": 7.0,
"BF": 282.0,
"Pitches": 1112.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6154,
"R": 2.6923,
"H": 5.2308,
"BB": 2.2308,
"SO": 4.6154,
"HR": 0.5385,
"BF": 21.6923,
"Pitches": 85.5385
},
"rates": {
"ERA": 4.883,
"WHIP": 1.5479,
"ER_per_IP": 0.54255,
"H_per_IP": 1.08511,
"BB_per_IP": 0.46277,
"SO_per_IP": 0.95745,
"HR_per_IP": 0.1117
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.247,
"predicted_H": 4.974,
"predicted_BB": 2.309,
"predicted_SO": 4.53,
"predicted_HR": 0.565,
"predicted_ERA": 4.0643,
"predicted_WHIP": 1.4636
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.247,
"final": 3.0663,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.974,
"final": 5.4535,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.309,
"final": 1.6972,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.53,
"final": 6.1518,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.565,
"final": 1.2357,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0643,
"final": 4.0643,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4636,
"final": 1.4636,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 23,
"H": 48,
"BB": 23,
"SO": 44,
"HR": 6,
"ERA": 4.3125,
"WHIP": 1.4791666666666667,
"K9": 8.25,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9828441724120134,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "579328",
"player_name": "Yusei Kikuchi",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 161,
"wins": 62,
"losses": 99,
"win_pct": 0.3851,
"runs_scored": 652.0,
"runs_allowed": 745.0,
"run_differential": -93.0,
"run_differential_per_game": -0.5776,
"avg_runs_scored": 4.0497,
"avg_runs_allowed": 4.6273,
"offense_index": 0.9049,
"defense_index": 0.9672,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.0,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.2036
},
"opponent": {
"team": "SEA",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 657.0,
"runs_allowed": 719.0,
"run_differential": -62.0,
"run_differential_per_game": -0.3851,
"avg_runs_scored": 4.0807,
"avg_runs_allowed": 4.4658,
"offense_index": 0.9118,
"defense_index": 1.0022,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0764
},
"edges": {
"quality_edge": -0.1272,
"offense_edge": -0.0951,
"opponent_offense_edge": -0.0882,
"defense_strength": -0.0328,
"opponent_defense_weakness": -0.0022,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9975,
"run_prevention": 0.9955,
"strikeout": 1.0032
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "579328",
"profile": {
"available": true,
"pitcher_id": "579328",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 259.0,
"k_percent": 21.3,
"bb_percent": 10.3,
"woba": 0.349,
"xwoba": 0.343,
"sweet_spot_percent": 33.5,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 46.1,
"avg_best_speed": 80.0911,
"avg_hyper_speed": 95.6181,
"whiff_percent": 23.9,
"swing_percent": 48.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7215,
"command_and_miss": -0.17,
"regression_edge": 0.1714,
"xwoba_edge": -0.9143,
"barrel_edge": -0.3778,
"hard_hit_edge": -1.1714,
"whiff_edge": -0.1857,
"bb_edge": -0.3,
"pitch_design_score": 0.0058
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "579328",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.96673905289315,
"release_spin_rate": 2207.8213288952597,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.96673905289315,
"release_spin_rate": 2207.8213288952597,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.9667,
"release_spin_rate": 2207.8213,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0058,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0411,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.4306,
"sample_weight": 1.0,
"run_prevention_factor": 1.0366,
"strikeout_factor": 0.9886,
"walk_factor": 1.024,
"homer_factor": 1.1045,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "579328",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0366,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0366,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.024,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1045,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9886,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAA@SEA | home | Logan Gilbert | Logan Gilbert | True | 5.2 | 4.0 | -5 | 0 | 0 | 0 | 4/0 | 0/1 | 10/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8076923076923075,
"WHIP": 1.1043956043956045,
"IP": 182.0,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.871,
"recent_avg_IP": 5.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2007,
"sample_weight": 1.0,
"run_prevention_factor": 0.9829,
"strikeout_factor": 1.0566,
"walk_factor": 0.948,
"homer_factor": 1.0584,
"regression_flag": "neutral",
"k_percent": 26.7,
"bb_percent": 6.5,
"woba": 0.303,
"xwoba": 0.297,
"barrel_percent": 10.1,
"hard_hit_percent": 41.2,
"whiff_percent": 30.4
},
"espn_rank": {
"rank": 34,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669302",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 19.0,
"R": 19.0,
"H": 33.0,
"BB": 9.0,
"SO": 35.0,
"HR": 8.0,
"BF": 121.0,
"Pitches": 463.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8,
"R": 3.8,
"H": 6.6,
"BB": 1.8,
"SO": 7.0,
"HR": 1.6,
"BF": 24.2,
"Pitches": 92.6
},
"rates": {
"ERA": 6.4125,
"WHIP": 1.575,
"ER_per_IP": 0.7125,
"H_per_IP": 1.2375,
"BB_per_IP": 0.3375,
"SO_per_IP": 1.3125,
"HR_per_IP": 0.3
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 29.0,
"R": 29.0,
"H": 55.0,
"BB": 21.0,
"SO": 64.0,
"HR": 14.0,
"BF": 241.0,
"Pitches": 951.0
},
"per_game": {
"IP": 5.2,
"ER": 2.9,
"R": 2.9,
"H": 5.5,
"BB": 2.1,
"SO": 6.4,
"HR": 1.4,
"BF": 24.1,
"Pitches": 95.1
},
"rates": {
"ERA": 4.6331,
"WHIP": 1.3491,
"ER_per_IP": 0.51479,
"H_per_IP": 0.97633,
"BB_per_IP": 0.37278,
"SO_per_IP": 1.13609,
"HR_per_IP": 0.24852
}
},
"season": {
"games": 31,
"totals": {
"IP": 182.0,
"ER": 77.0,
"R": 77.0,
"H": 153.0,
"BB": 48.0,
"SO": 197.0,
"HR": 29.0,
"BF": 737.0,
"Pitches": 2922.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4839,
"R": 2.4839,
"H": 4.9355,
"BB": 1.5484,
"SO": 6.3548,
"HR": 0.9355,
"BF": 23.7742,
"Pitches": 94.2581
},
"rates": {
"ERA": 3.8077,
"WHIP": 1.1044,
"ER_per_IP": 0.42308,
"H_per_IP": 0.84066,
"BB_per_IP": 0.26374,
"SO_per_IP": 1.08242,
"HR_per_IP": 0.15934
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.219,
"predicted_H": 5.904,
"predicted_BB": 1.909,
"predicted_SO": 6.532,
"predicted_HR": 1.339,
"predicted_ERA": 5.1778,
"predicted_WHIP": 1.3964
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 3.219,
"final": 1.9034,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.904,
"final": 5.1259,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.909,
"final": 1.1288,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 10.0,
"form": 6.532,
"final": 7.9493,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.339,
"final": 0.7918,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1778,
"final": 5.1778,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3964,
"final": 1.3964,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 29,
"H": 55,
"BB": 21,
"SO": 64,
"HR": 14,
"ERA": 4.633136094674556,
"WHIP": 1.349112426035503,
"K9": 10.224852071005916,
"HR9": 2.2366863905325443,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.0156643770471219,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 10.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 10,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669302",
"player_name": "Logan Gilbert",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 10.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 161,
"wins": 75,
"losses": 86,
"win_pct": 0.4658,
"runs_scored": 657.0,
"runs_allowed": 719.0,
"run_differential": -62.0,
"run_differential_per_game": -0.3851,
"avg_runs_scored": 4.0807,
"avg_runs_allowed": 4.4658,
"offense_index": 0.9118,
"defense_index": 1.0022,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0764
},
"opponent": {
"team": "LAA",
"games": 161,
"wins": 62,
"losses": 99,
"win_pct": 0.3851,
"runs_scored": 652.0,
"runs_allowed": 745.0,
"run_differential": -93.0,
"run_differential_per_game": -0.5776,
"avg_runs_scored": 4.0497,
"avg_runs_allowed": 4.6273,
"offense_index": 0.9049,
"defense_index": 0.9672,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.0,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.2036
},
"edges": {
"quality_edge": 0.1272,
"offense_edge": -0.0882,
"opponent_offense_edge": -0.0951,
"defense_strength": 0.0022,
"opponent_defense_weakness": 0.0328,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.009,
"run_prevention": 0.9782,
"strikeout": 1.0114
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669302",
"profile": {
"available": true,
"pitcher_id": "669302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 680.0,
"k_percent": 26.7,
"bb_percent": 6.5,
"woba": 0.303,
"xwoba": 0.297,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 41.2,
"avg_best_speed": 78.9253,
"avg_hyper_speed": 94.3788,
"whiff_percent": 30.4,
"swing_percent": 50.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0079,
"command_and_miss": 0.6921,
"regression_edge": 0.1714,
"xwoba_edge": 0.4,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.4714,
"whiff_edge": 0.7429,
"bb_edge": 0.65,
"pitch_design_score": -0.0099
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68670804198848,
"release_spin_rate": 1934.7185998494679,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 89.68670804198848,
"release_spin_rate": 1934.7185998494679,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.6867,
"release_spin_rate": 1934.7186,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0099,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0709,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2007,
"sample_weight": 1.0,
"run_prevention_factor": 0.9829,
"strikeout_factor": 1.0566,
"walk_factor": 0.948,
"homer_factor": 1.0584,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669302",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9829,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9829,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0584,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0566,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 10,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260927_LAA@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAD@SF | away | Jack Dreyer | Jack Dreyer | True | 5.0 | 2.0 | -9 | 1 | 1 | 0 | 3/2 | 2/0 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1595744680851063,
"WHIP": 1.1010638297872342,
"IP": 62.2,
"games_started": null,
"games_pitched": 66,
"role_avg_IP": 1.0,
"recent_avg_IP": 1.0,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3395,
"sample_weight": 0.932,
"run_prevention_factor": 0.9711,
"strikeout_factor": 1.0485,
"walk_factor": 1.0,
"homer_factor": 1.0023,
"regression_flag": "neutral",
"k_percent": 28.0,
"bb_percent": 9.1,
"woba": 0.27,
"xwoba": 0.29,
"barrel_percent": 7.1,
"hard_hit_percent": 41.8,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 159,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 62.2,
"season_ERA": 3.16,
"season_WHIP": 1.101,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.886,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7204,
"prior_weight": 0.2796
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676263",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 66,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 3.0,
"SO": 3.0,
"HR": 0.0,
"BF": 23.0,
"Pitches": 80.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.6,
"SO": 0.6,
"HR": 0.0,
"BF": 4.6,
"Pitches": 16.0
},
"rates": {
"ERA": 5.0625,
"WHIP": 1.3125,
"ER_per_IP": 0.5625,
"H_per_IP": 0.75,
"BB_per_IP": 0.5625,
"SO_per_IP": 0.5625,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 5.0,
"R": 5.0,
"H": 9.0,
"BB": 5.0,
"SO": 5.0,
"HR": 0.0,
"BF": 41.0,
"Pitches": 146.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.9,
"BB": 0.5,
"SO": 0.5,
"HR": 0.0,
"BF": 4.1,
"Pitches": 14.6
},
"rates": {
"ERA": 4.8214,
"WHIP": 1.5,
"ER_per_IP": 0.53571,
"H_per_IP": 0.96429,
"BB_per_IP": 0.53571,
"SO_per_IP": 0.53571,
"HR_per_IP": 0.0
}
},
"season": {
"games": 66,
"totals": {
"IP": 62.2,
"ER": 22.0,
"R": 22.0,
"H": 46.0,
"BB": 23.0,
"SO": 71.0,
"HR": 7.0,
"BF": 254.0,
"Pitches": 1005.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3333,
"R": 0.3333,
"H": 0.697,
"BB": 0.3485,
"SO": 1.0758,
"HR": 0.1061,
"BF": 3.8485,
"Pitches": 15.2273
},
"rates": {
"ERA": 3.1596,
"WHIP": 1.1011,
"ER_per_IP": 0.35106,
"H_per_IP": 0.73404,
"BB_per_IP": 0.36702,
"SO_per_IP": 1.13298,
"HR_per_IP": 0.1117
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.226,
"predicted_H": 2.079,
"predicted_BB": 1.142,
"predicted_SO": 1.78,
"predicted_HR": 0.138,
"predicted_ERA": 4.6021,
"predicted_WHIP": 1.3434
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4681,
"form_weight": 0.5319,
"form_reliability": 0.7204,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.886,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7204,
"prior_weight": 0.2796
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.226,
"final": 1.1202,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.079,
"final": 2.5101,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.142,
"final": 1.5437,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 1.78,
"final": 4.2236,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.138,
"final": 1.0097,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6021,
"final": 4.6021,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3434,
"final": 1.3434,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 5,
"H": 9,
"BB": 5,
"SO": 5,
"HR": 0,
"ERA": 4.821428571428572,
"WHIP": 1.5000000000000002,
"K9": 4.821428571428572,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 1.0126672402765533,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.886,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7204,
"prior_weight": 0.2796
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676263",
"player_name": "Jack Dreyer",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 161,
"wins": 99,
"losses": 62,
"win_pct": 0.6149,
"runs_scored": 796.0,
"runs_allowed": 599.0,
"run_differential": 197.0,
"run_differential_per_game": 1.2236,
"avg_runs_scored": 4.9441,
"avg_runs_allowed": 3.7205,
"offense_index": 1.1047,
"defense_index": 1.2029,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.7,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.318
},
"opponent": {
"team": "SF",
"games": 161,
"wins": 65,
"losses": 96,
"win_pct": 0.4037,
"runs_scored": 668.0,
"runs_allowed": 755.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5404,
"avg_runs_scored": 4.1491,
"avg_runs_allowed": 4.6894,
"offense_index": 0.9271,
"defense_index": 0.9544,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2183
},
"edges": {
"quality_edge": 0.5363,
"offense_edge": 0.1047,
"opponent_offense_edge": -0.0729,
"defense_strength": 0.2029,
"opponent_defense_weakness": 0.0456,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0305,
"run_prevention": 0.9412,
"strikeout": 1.0219
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676263",
"profile": {
"available": true,
"pitcher_id": "676263",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 233.0,
"k_percent": 28.0,
"bb_percent": 9.1,
"woba": 0.27,
"xwoba": 0.29,
"sweet_spot_percent": 25.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 41.8,
"avg_best_speed": 77.8558,
"avg_hyper_speed": 94.7984,
"whiff_percent": 28.3,
"swing_percent": 48.5
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5003,
"command_and_miss": 0.5407,
"regression_edge": -0.5714,
"xwoba_edge": 0.6,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.5571,
"whiff_edge": 0.4429,
"bb_edge": 0.0,
"pitch_design_score": 0.0087
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676263",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 90.01857852918194,
"release_spin_rate": 2458.5593322273385,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 90.01857852918194,
"release_spin_rate": 2458.5593322273385,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.0186,
"release_spin_rate": 2458.5593,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0087,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0619,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.3395,
"sample_weight": 0.932,
"run_prevention_factor": 0.9711,
"strikeout_factor": 1.0485,
"walk_factor": 1.0,
"homer_factor": 1.0023,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676263",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9731,
"adjusted": 2
},
"predicted_H": {
"original": 2.0,
"factor": 0.9731,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0021,
"adjusted": 0
},
"predicted_SO": {
"original": 9.0,
"factor": 1.0452,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260927_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_LAD@SF | home | Carson Seymour | Carson Seymour | True | 4.0 | 1.0 | -9 | 4 | 0 | -4 | 6/0 | 1/0 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.695652173913043,
"WHIP": 1.5326086956521738,
"IP": 30.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4294,
"sample_weight": 0.484,
"run_prevention_factor": 1.0365,
"strikeout_factor": 0.9757,
"walk_factor": 1.0271,
"homer_factor": 1.0543,
"regression_flag": "neutral",
"k_percent": 15.7,
"bb_percent": 11.9,
"woba": 0.364,
"xwoba": 0.385,
"barrel_percent": 9.4,
"hard_hit_percent": 39.6,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 750,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5577,
"prior_weight": 0.4423
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693313",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 1.0,
"R": 3.0,
"H": 2.0,
"BB": 2.0,
"SO": 3.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 72.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.6,
"H": 0.4,
"BB": 0.4,
"SO": 0.6,
"HR": 0.2,
"BF": 3.6,
"Pitches": 14.4
},
"rates": {
"ERA": 1.9286,
"WHIP": 0.8571,
"ER_per_IP": 0.21429,
"H_per_IP": 0.42857,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.64286,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 8.2,
"ER": 5.0,
"R": 7.0,
"H": 7.0,
"BB": 7.0,
"SO": 5.0,
"HR": 3.0,
"BF": 40.0,
"Pitches": 148.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.7,
"H": 0.7,
"BB": 0.7,
"SO": 0.5,
"HR": 0.3,
"BF": 4.0,
"Pitches": 14.8
},
"rates": {
"ERA": 5.1923,
"WHIP": 1.6154,
"ER_per_IP": 0.57692,
"H_per_IP": 0.80769,
"BB_per_IP": 0.80769,
"SO_per_IP": 0.57692,
"HR_per_IP": 0.34615
}
},
"season": {
"games": 24,
"totals": {
"IP": 30.2,
"ER": 16.0,
"R": 19.0,
"H": 31.0,
"BB": 16.0,
"SO": 22.0,
"HR": 6.0,
"BF": 137.0,
"Pitches": 520.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6667,
"R": 0.7917,
"H": 1.2917,
"BB": 0.6667,
"SO": 0.9167,
"HR": 0.25,
"BF": 5.7083,
"Pitches": 21.6667
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.5326,
"ER_per_IP": 0.52174,
"H_per_IP": 1.01087,
"BB_per_IP": 0.52174,
"SO_per_IP": 0.71739,
"HR_per_IP": 0.19565
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.2,
"predicted_H": 2.162,
"predicted_BB": 1.306,
"predicted_SO": 2.042,
"predicted_HR": 0.556,
"predicted_ERA": 4.062,
"predicted_WHIP": 1.3042
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5369,
"form_weight": 0.4631,
"form_reliability": 0.5577,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5577,
"prior_weight": 0.4423
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 2.2,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.2,
"final": 2.7032,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 2.162,
"final": 4.2225,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.306,
"final": 1.1417,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.042,
"final": 4.1669,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.556,
"final": 1.3312,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.062,
"final": 4.062,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3042,
"final": 1.3042,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 8.2,
"ER": 5,
"H": 7,
"BB": 7,
"SO": 5,
"HR": 3,
"ERA": 5.1923076923076925,
"WHIP": 1.6153846153846154,
"K9": 5.1923076923076925,
"HR9": 3.1153846153846154,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-26T00:00:00"
},
"recent_form_boost": 1.0246800082647531,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5577,
"prior_weight": 0.4423
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693313",
"player_name": "Carson Seymour",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 161,
"wins": 65,
"losses": 96,
"win_pct": 0.4037,
"runs_scored": 668.0,
"runs_allowed": 755.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5404,
"avg_runs_scored": 4.1491,
"avg_runs_allowed": 4.6894,
"offense_index": 0.9271,
"defense_index": 0.9544,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.2183
},
"opponent": {
"team": "LAD",
"games": 161,
"wins": 99,
"losses": 62,
"win_pct": 0.6149,
"runs_scored": 796.0,
"runs_allowed": 599.0,
"run_differential": 197.0,
"run_differential_per_game": 1.2236,
"avg_runs_scored": 4.9441,
"avg_runs_allowed": 3.7205,
"offense_index": 1.1047,
"defense_index": 1.2029,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 2.7,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.318
},
"edges": {
"quality_edge": -0.5363,
"offense_edge": -0.0729,
"opponent_offense_edge": 0.1047,
"defense_strength": -0.0456,
"opponent_defense_weakness": -0.2029,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.973,
"run_prevention": 1.0481,
"strikeout": 0.9755
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693313",
"profile": {
"available": true,
"pitcher_id": "693313",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 121.0,
"k_percent": 15.7,
"bb_percent": 11.9,
"woba": 0.364,
"xwoba": 0.385,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 39.6,
"avg_best_speed": 77.1603,
"avg_hyper_speed": 93.9282,
"whiff_percent": 22.7,
"swing_percent": 46.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.2011,
"command_and_miss": -0.67,
"regression_edge": -0.6,
"xwoba_edge": -2.1143,
"barrel_edge": -0.4889,
"hard_hit_edge": -0.2429,
"whiff_edge": -0.3571,
"bb_edge": -0.7,
"pitch_design_score": 0.2465
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693313",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.26568376704982,
"release_spin_rate": 2239.5160098179445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.26568376704982,
"release_spin_rate": 2239.5160098179445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.2657,
"release_spin_rate": 2239.516,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2465,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.7607,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.4294,
"sample_weight": 0.484,
"run_prevention_factor": 1.0365,
"strikeout_factor": 0.9757,
"walk_factor": 1.0271,
"homer_factor": 1.0543,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "693313",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0177,
"adjusted": 5
},
"predicted_H": {
"original": 9.0,
"factor": 1.0177,
"adjusted": 9
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0131,
"adjusted": 2
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0263,
"adjusted": 2
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9882,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 76,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260927_LAD@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_NYM@WAS | away | Sean Manaea | Sean Manaea | True | 5.2 | 6.0 | 1 | 4 | 5 | 1 | 7/7 | 2/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.665898617511521,
"WHIP": 1.2995391705069126,
"IP": 144.2,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.648,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3304,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9874,
"walk_factor": 0.956,
"homer_factor": 1.1128,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 6.9,
"woba": 0.343,
"xwoba": 0.335,
"barrel_percent": 11.1,
"hard_hit_percent": 41.9,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 574,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "640455",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 19.0,
"R": 20.0,
"H": 31.0,
"BB": 4.0,
"SO": 24.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 408.0
},
"per_game": {
"IP": 5.2,
"ER": 3.8,
"R": 4.0,
"H": 6.2,
"BB": 0.8,
"SO": 4.8,
"HR": 0.8,
"BF": 24.2,
"Pitches": 81.6
},
"rates": {
"ERA": 6.1807,
"WHIP": 1.2651,
"ER_per_IP": 0.68675,
"H_per_IP": 1.12048,
"BB_per_IP": 0.14458,
"SO_per_IP": 0.86747,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 32.0,
"R": 33.0,
"H": 57.0,
"BB": 15.0,
"SO": 57.0,
"HR": 11.0,
"BF": 250.0,
"Pitches": 874.0
},
"per_game": {
"IP": 6.0,
"ER": 3.2,
"R": 3.3,
"H": 5.7,
"BB": 1.5,
"SO": 5.7,
"HR": 1.1,
"BF": 25.0,
"Pitches": 87.4
},
"rates": {
"ERA": 4.8814,
"WHIP": 1.2203,
"ER_per_IP": 0.54237,
"H_per_IP": 0.9661,
"BB_per_IP": 0.25424,
"SO_per_IP": 0.9661,
"HR_per_IP": 0.18644
}
},
"season": {
"games": 32,
"totals": {
"IP": 144.2,
"ER": 75.0,
"R": 83.0,
"H": 145.0,
"BB": 43.0,
"SO": 141.0,
"HR": 23.0,
"BF": 627.0,
"Pitches": 2393.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3438,
"R": 2.5938,
"H": 4.5312,
"BB": 1.3438,
"SO": 4.4062,
"HR": 0.7188,
"BF": 19.5938,
"Pitches": 74.7812
},
"rates": {
"ERA": 4.6659,
"WHIP": 1.2995,
"ER_per_IP": 0.51843,
"H_per_IP": 1.0023,
"BB_per_IP": 0.29724,
"SO_per_IP": 0.97465,
"HR_per_IP": 0.15899
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.303,
"predicted_H": 5.789,
"predicted_BB": 1.32,
"predicted_SO": 5.176,
"predicted_HR": 0.897,
"predicted_ERA": 5.3137,
"predicted_WHIP": 1.2707
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.303,
"final": 3.5867,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.789,
"final": 6.282,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.32,
"final": 1.5968,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.176,
"final": 5.1044,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.897,
"final": 0.9389,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3137,
"final": 5.3137,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2707,
"final": 1.2707,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.0,
"ER": 32,
"H": 57,
"BB": 15,
"SO": 57,
"HR": 11,
"ERA": 4.88135593220339,
"WHIP": 1.2203389830508475,
"K9": 8.694915254237289,
"HR9": 1.6779661016949152,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 1.0403697726944992,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "640455",
"player_name": "Sean Manaea",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 161,
"wins": 74,
"losses": 87,
"win_pct": 0.4596,
"runs_scored": 695.0,
"runs_allowed": 725.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1863,
"avg_runs_scored": 4.3168,
"avg_runs_allowed": 4.5031,
"offense_index": 0.9603,
"defense_index": 0.9982,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.9,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0571
},
"opponent": {
"team": "WAS",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 815.0,
"runs_allowed": 811.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0248,
"avg_runs_scored": 5.0621,
"avg_runs_allowed": 5.0373,
"offense_index": 1.1262,
"defense_index": 0.8924,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0142
},
"edges": {
"quality_edge": -0.0713,
"offense_edge": -0.0397,
"opponent_offense_edge": 0.1262,
"defense_strength": -0.0018,
"opponent_defense_weakness": 0.1076,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.992,
"run_prevention": 1.0239,
"strikeout": 0.9878
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "640455",
"profile": {
"available": true,
"pitcher_id": "640455",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 578.0,
"k_percent": 22.5,
"bb_percent": 6.9,
"woba": 0.343,
"xwoba": 0.335,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 41.9,
"avg_best_speed": 77.6151,
"avg_hyper_speed": 94.6292,
"whiff_percent": 22.5,
"swing_percent": 50.4
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5978,
"command_and_miss": 0.0071,
"regression_edge": 0.2286,
"xwoba_edge": -0.6857,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.3857,
"bb_edge": 0.55,
"pitch_design_score": -0.2543
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 85.32242397875616,
"release_spin_rate": 2105.383936655872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 85.32242397875616,
"release_spin_rate": 2105.383936655872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.3224,
"release_spin_rate": 2105.3839,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2543,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8166,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3304,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9874,
"walk_factor": 0.956,
"homer_factor": 1.1128,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "640455",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0281,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0281,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.956,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1128,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9874,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260927_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_NYM@WAS | home | DJ Herz | DJ Herz | True | 3.2 | 3.0 | -2 | 4 | 4 | 0 | 7/6 | 1/1 | 6/2 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 9.0,
"WHIP": 1.75,
"IP": 4.0,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 37.5,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 632,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687792",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"rates": {
"ERA": 9.0,
"WHIP": 1.75,
"ER_per_IP": 1.0,
"H_per_IP": 1.25,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"rates": {
"ERA": 9.0,
"WHIP": 1.75,
"ER_per_IP": 1.0,
"H_per_IP": 1.25,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
},
"season": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 63.0
},
"rates": {
"ERA": 9.0,
"WHIP": 1.75,
"ER_per_IP": 1.0,
"H_per_IP": 1.25,
"BB_per_IP": 0.5,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.376,
"predicted_H": 4.112,
"predicted_BB": 1.598,
"predicted_SO": 3.787,
"predicted_HR": 0.663,
"predicted_ERA": 5.345,
"predicted_WHIP": 1.4275
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.376,
"final": 4.2182,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.112,
"final": 6.1396,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.598,
"final": 1.1782,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.787,
"final": 5.3407,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.663,
"final": 0.8996,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.345,
"final": 5.345,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4275,
"final": 1.4275,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 4.0,
"ER": 4,
"H": 5,
"BB": 2,
"SO": 4,
"HR": 1,
"ERA": 9.0,
"WHIP": 1.75,
"K9": 9.0,
"HR9": 2.25,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-09-21T00:00:00"
},
"recent_form_boost": 1.0690918570445584,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687792",
"player_name": "DJ Herz",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 815.0,
"runs_allowed": 811.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0248,
"avg_runs_scored": 5.0621,
"avg_runs_allowed": 5.0373,
"offense_index": 1.1262,
"defense_index": 0.8924,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.2,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0142
},
"opponent": {
"team": "NYM",
"games": 161,
"wins": 74,
"losses": 87,
"win_pct": 0.4596,
"runs_scored": 695.0,
"runs_allowed": 725.0,
"run_differential": -30.0,
"run_differential_per_game": -0.1863,
"avg_runs_scored": 4.3168,
"avg_runs_allowed": 4.5031,
"offense_index": 0.9603,
"defense_index": 0.9982,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.9,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0571
},
"edges": {
"quality_edge": 0.0713,
"offense_edge": 0.1262,
"opponent_offense_edge": -0.0397,
"defense_strength": -0.1076,
"opponent_defense_weakness": 0.0018,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0012,
"run_prevention": 1.0008,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687792",
"profile": {
"available": true,
"pitcher_id": "687792",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.5,
"avg_best_speed": 77.5089,
"avg_hyper_speed": 93.8602,
"whiff_percent": 25.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0737,
"command_and_miss": 0.075,
"regression_edge": 0.0571,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.0714,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "687792",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687792",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9989,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 0.9989,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9996,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9987,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0014,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260927_NYM@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_PIT@DET | away | Jared Jones | Jared Jones | True | 5.2 | 4.0 | -5 | 1 | 0 | -1 | 3/1 | 1/0 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8703071672354947,
"WHIP": 1.1160409556313993,
"IP": 97.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.883,
"recent_avg_IP": 5.933,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5053,
"sample_weight": 1.0,
"run_prevention_factor": 0.9571,
"strikeout_factor": 1.0846,
"walk_factor": 0.972,
"homer_factor": 0.9831,
"regression_flag": "neutral",
"k_percent": 29.4,
"bb_percent": 7.7,
"woba": 0.287,
"xwoba": 0.281,
"barrel_percent": 7.6,
"hard_hit_percent": 38.2,
"whiff_percent": 32.6
},
"espn_rank": {
"rank": 67,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683003",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 6.0,
"R": 6.0,
"H": 19.0,
"BB": 5.0,
"SO": 41.0,
"HR": 1.0,
"BF": 113.0,
"Pitches": 444.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2,
"R": 1.2,
"H": 3.8,
"BB": 1.0,
"SO": 8.2,
"HR": 0.2,
"BF": 22.6,
"Pitches": 88.8
},
"rates": {
"ERA": 1.8202,
"WHIP": 0.809,
"ER_per_IP": 0.20225,
"H_per_IP": 0.64045,
"BB_per_IP": 0.16854,
"SO_per_IP": 1.38202,
"HR_per_IP": 0.03371
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 23.0,
"R": 23.0,
"H": 44.0,
"BB": 18.0,
"SO": 65.0,
"HR": 6.0,
"BF": 218.0,
"Pitches": 845.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.3,
"H": 4.4,
"BB": 1.8,
"SO": 6.5,
"HR": 0.6,
"BF": 21.8,
"Pitches": 84.5
},
"rates": {
"ERA": 4.0065,
"WHIP": 1.2,
"ER_per_IP": 0.44516,
"H_per_IP": 0.85161,
"BB_per_IP": 0.34839,
"SO_per_IP": 1.25806,
"HR_per_IP": 0.11613
}
},
"season": {
"games": 20,
"totals": {
"IP": 97.2,
"ER": 42.0,
"R": 43.0,
"H": 78.0,
"BB": 31.0,
"SO": 118.0,
"HR": 12.0,
"BF": 402.0,
"Pitches": 1579.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.15,
"H": 3.9,
"BB": 1.55,
"SO": 5.9,
"HR": 0.6,
"BF": 20.1,
"Pitches": 78.95
},
"rates": {
"ERA": 3.8703,
"WHIP": 1.116,
"ER_per_IP": 0.43003,
"H_per_IP": 0.79863,
"BB_per_IP": 0.31741,
"SO_per_IP": 1.20819,
"HR_per_IP": 0.12287
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.036,
"predicted_H": 4.38,
"predicted_BB": 1.573,
"predicted_SO": 6.791,
"predicted_HR": 0.519,
"predicted_ERA": 3.3191,
"predicted_WHIP": 1.0784
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.036,
"final": 1.5859,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.38,
"final": 3.7804,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.573,
"final": 1.324,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.791,
"final": 5.1438,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.519,
"final": 0.728,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3191,
"final": 3.3191,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0784,
"final": 1.0784,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 23,
"H": 44,
"BB": 18,
"SO": 65,
"HR": 6,
"ERA": 4.006451612903225,
"WHIP": 1.2,
"K9": 11.32258064516129,
"HR9": 1.0451612903225806,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9414345621969595,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683003",
"player_name": "Jared Jones",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 161,
"wins": 81,
"losses": 80,
"win_pct": 0.5031,
"runs_scored": 763.0,
"runs_allowed": 737.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1615,
"avg_runs_scored": 4.7391,
"avg_runs_allowed": 4.5776,
"offense_index": 1.0589,
"defense_index": 0.9777,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0575
},
"opponent": {
"team": "DET",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 721.0,
"runs_allowed": 648.0,
"run_differential": 73.0,
"run_differential_per_game": 0.4534,
"avg_runs_scored": 4.4783,
"avg_runs_allowed": 4.0248,
"offense_index": 1.0006,
"defense_index": 1.112,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.6,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0031
},
"edges": {
"quality_edge": 0.0606,
"offense_edge": 0.0589,
"opponent_offense_edge": 0.0006,
"defense_strength": -0.0223,
"opponent_defense_weakness": -0.112,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0017,
"run_prevention": 0.9993,
"strikeout": 1.0018
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683003",
"profile": {
"available": true,
"pitcher_id": "683003",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 379.0,
"k_percent": 29.4,
"bb_percent": 7.7,
"woba": 0.287,
"xwoba": 0.281,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 38.2,
"avg_best_speed": 78.6723,
"avg_hyper_speed": 94.0781,
"whiff_percent": 32.6,
"swing_percent": 49.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4158,
"command_and_miss": 0.9157,
"regression_edge": 0.1714,
"xwoba_edge": 0.8571,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.0429,
"whiff_edge": 1.0571,
"bb_edge": 0.35,
"pitch_design_score": 0.2146
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683003",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 93.69589250768729,
"release_spin_rate": 2522.5526400784156,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 93.69589250768729,
"release_spin_rate": 2522.5526400784156,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.6959,
"release_spin_rate": 2522.5526,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2146,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5328,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.5053,
"sample_weight": 1.0,
"run_prevention_factor": 0.9571,
"strikeout_factor": 1.0846,
"walk_factor": 0.972,
"homer_factor": 0.9831,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683003",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9571,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9571,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.972,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9831,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0846,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260927_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_PIT@DET | home | River Ryan | River Ryan | True | 3.0 | 1.1 | -5 | 1 | 2 | 1 | 3/3 | 1/2 | 8/3 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 0.0,
"WHIP": 1.0,
"IP": 3.0,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 37.5,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 343,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "689981",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"per_game": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.66667,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"per_game": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.66667,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
},
"season": {
"games": 1,
"totals": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"per_game": {
"IP": 3.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 43.0
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.66667,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.638,
"predicted_H": 3.568,
"predicted_BB": 1.425,
"predicted_SO": 3.629,
"predicted_HR": 0.476,
"predicted_ERA": 3.8447,
"predicted_WHIP": 1.3025
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.638,
"final": 1.1901,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.568,
"final": 3.1692,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.425,
"final": 1.1266,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 3.629,
"final": 6.6977,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.476,
"final": 0.1418,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8447,
"final": 3.8447,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3025,
"final": 1.3025,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 3.0,
"ER": 0,
"H": 2,
"BB": 1,
"SO": 3,
"HR": 0,
"ERA": 0.0,
"WHIP": 1.0,
"K9": 9.0,
"HR9": 0.0,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-09-21T00:00:00"
},
"recent_form_boost": 0.9484484931354742,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689981",
"player_name": "River Ryan",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 721.0,
"runs_allowed": 648.0,
"run_differential": 73.0,
"run_differential_per_game": 0.4534,
"avg_runs_scored": 4.4783,
"avg_runs_allowed": 4.0248,
"offense_index": 1.0006,
"defense_index": 1.112,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.6,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0031
},
"opponent": {
"team": "PIT",
"games": 161,
"wins": 81,
"losses": 80,
"win_pct": 0.5031,
"runs_scored": 763.0,
"runs_allowed": 737.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1615,
"avg_runs_scored": 4.7391,
"avg_runs_allowed": 4.5776,
"offense_index": 1.0589,
"defense_index": 0.9777,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0575
},
"edges": {
"quality_edge": -0.0606,
"offense_edge": 0.0006,
"opponent_offense_edge": 0.0589,
"defense_strength": 0.112,
"opponent_defense_weakness": 0.0223,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9986,
"run_prevention": 1.0013,
"strikeout": 0.9935
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689981",
"profile": {
"available": true,
"pitcher_id": "689981",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.31,
"xwoba": 0.308,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.5,
"avg_best_speed": 77.5089,
"avg_hyper_speed": 93.8602,
"whiff_percent": 25.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0737,
"command_and_miss": 0.075,
"regression_edge": 0.0571,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.0714,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "689981",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.997,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "689981",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9989,
"adjusted": 0
},
"predicted_H": {
"original": 2.0,
"factor": 0.9989,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9996,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9987,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0014,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 13,
"Pitches": 63,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260927_PIT@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_STL@MIL | away | Andre Pallante | Andre Pallante | True | 5.1 | 5.0 | -1 | 4 | 6 | 2 | 6/10 | 5/1 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.611464968152866,
"WHIP": 1.2420382165605095,
"IP": 157.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.607,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0257,
"sample_weight": 1.0,
"run_prevention_factor": 0.9978,
"strikeout_factor": 0.9434,
"walk_factor": 0.968,
"homer_factor": 0.9327,
"regression_flag": "neutral",
"k_percent": 16.2,
"bb_percent": 7.5,
"woba": 0.298,
"xwoba": 0.309,
"barrel_percent": 4.7,
"hard_hit_percent": 34.2,
"whiff_percent": 21.1
},
"espn_rank": {
"rank": 59,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669467",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 13.0,
"R": 15.0,
"H": 28.0,
"BB": 9.0,
"SO": 14.0,
"HR": 1.0,
"BF": 115.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 3.0,
"H": 5.6,
"BB": 1.8,
"SO": 2.8,
"HR": 0.2,
"BF": 23.0,
"Pitches": 87.2
},
"rates": {
"ERA": 4.3333,
"WHIP": 1.3704,
"ER_per_IP": 0.48148,
"H_per_IP": 1.03704,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.51852,
"HR_per_IP": 0.03704
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 19.0,
"R": 21.0,
"H": 49.0,
"BB": 20.0,
"SO": 34.0,
"HR": 1.0,
"BF": 231.0,
"Pitches": 904.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 2.1,
"H": 4.9,
"BB": 2.0,
"SO": 3.4,
"HR": 0.1,
"BF": 23.1,
"Pitches": 90.4
},
"rates": {
"ERA": 3.0,
"WHIP": 1.2105,
"ER_per_IP": 0.33333,
"H_per_IP": 0.85965,
"BB_per_IP": 0.35088,
"SO_per_IP": 0.59649,
"HR_per_IP": 0.01754
}
},
"season": {
"games": 28,
"totals": {
"IP": 157.0,
"ER": 63.0,
"R": 67.0,
"H": 146.0,
"BB": 49.0,
"SO": 106.0,
"HR": 11.0,
"BF": 654.0,
"Pitches": 2551.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.3929,
"H": 5.2143,
"BB": 1.75,
"SO": 3.7857,
"HR": 0.3929,
"BF": 23.3571,
"Pitches": 91.1071
},
"rates": {
"ERA": 3.6115,
"WHIP": 1.242,
"ER_per_IP": 0.40127,
"H_per_IP": 0.92994,
"BB_per_IP": 0.3121,
"SO_per_IP": 0.67516,
"HR_per_IP": 0.07006
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.353,
"predicted_H": 5.259,
"predicted_BB": 1.877,
"predicted_SO": 3.466,
"predicted_HR": 0.295,
"predicted_ERA": 3.8574,
"predicted_WHIP": 1.3
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.353,
"final": 3.0349,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.259,
"final": 5.5658,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.877,
"final": 3.1699,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.466,
"final": 2.8591,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.295,
"final": 0.1729,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8574,
"final": 3.8574,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3,
"final": 1.3,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 19,
"H": 49,
"BB": 20,
"SO": 34,
"HR": 1,
"ERA": 3.0,
"WHIP": 1.2105263157894737,
"K9": 5.368421052631579,
"HR9": 0.15789473684210525,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.8284719136400835,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 5.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669467",
"player_name": "Andre Pallante",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 161,
"wins": 77,
"losses": 84,
"win_pct": 0.4783,
"runs_scored": 716.0,
"runs_allowed": 743.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1677,
"avg_runs_scored": 4.4472,
"avg_runs_allowed": 4.6149,
"offense_index": 0.9937,
"defense_index": 0.9698,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.2,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.1441
},
"opponent": {
"team": "MIL",
"games": 161,
"wins": 102,
"losses": 59,
"win_pct": 0.6335,
"runs_scored": 826.0,
"runs_allowed": 614.0,
"run_differential": 212.0,
"run_differential_per_game": 1.3168,
"avg_runs_scored": 5.1304,
"avg_runs_allowed": 3.8137,
"offense_index": 1.1463,
"defense_index": 1.1735,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.3803
},
"edges": {
"quality_edge": -0.5244,
"offense_edge": -0.0063,
"opponent_offense_edge": 0.1463,
"defense_strength": -0.0302,
"opponent_defense_weakness": -0.1735,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.9723,
"run_prevention": 1.0526,
"strikeout": 0.9726
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669467",
"profile": {
"available": true,
"pitcher_id": "669467",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 598.0,
"k_percent": 16.2,
"bb_percent": 7.5,
"woba": 0.298,
"xwoba": 0.309,
"sweet_spot_percent": 29.9,
"barrel_batted_rate": 4.7,
"hard_hit_percent": 34.2,
"avg_best_speed": 75.4273,
"avg_hyper_speed": 93.4989,
"whiff_percent": 21.1,
"swing_percent": 44.7
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3321,
"command_and_miss": -0.4979,
"regression_edge": -0.3143,
"xwoba_edge": 0.0571,
"barrel_edge": 0.5556,
"hard_hit_edge": 0.5286,
"whiff_edge": -0.5857,
"bb_edge": 0.4,
"pitch_design_score": 0.0069
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669467",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.9870971466055,
"release_spin_rate": 2284.8010573767824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.9870971466055,
"release_spin_rate": 2284.8010573767824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.9871,
"release_spin_rate": 2284.8011,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0069,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0493,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0257,
"sample_weight": 1.0,
"run_prevention_factor": 0.9978,
"strikeout_factor": 0.9434,
"walk_factor": 0.968,
"homer_factor": 0.9327,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669467",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9978,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9978,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9327,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9434,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 5,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260927_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_STL@MIL | home | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 5.1 | -2 | 2 | 0 | -2 | 2/2 | 0/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.8602362204724407,
"WHIP": 0.8031496062992125,
"IP": 169.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.839,
"recent_avg_IP": 4.867,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.3904,
"sample_weight": 1.0,
"run_prevention_factor": 0.8818,
"strikeout_factor": 1.16,
"walk_factor": 0.948,
"homer_factor": 0.8348,
"regression_flag": "neutral",
"k_percent": 38.2,
"bb_percent": 6.5,
"woba": 0.217,
"xwoba": 0.223,
"barrel_percent": 3.7,
"hard_hit_percent": 33.0,
"whiff_percent": 37.2
},
"espn_rank": {
"rank": 5,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 169.1,
"season_ERA": 1.86,
"season_WHIP": 0.803,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694819",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 8.0,
"R": 8.0,
"H": 17.0,
"BB": 9.0,
"SO": 31.0,
"HR": 1.0,
"BF": 96.0,
"Pitches": 400.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 1.6,
"H": 3.4,
"BB": 1.8,
"SO": 6.2,
"HR": 0.2,
"BF": 19.2,
"Pitches": 80.0
},
"rates": {
"ERA": 2.9589,
"WHIP": 1.0685,
"ER_per_IP": 0.32877,
"H_per_IP": 0.69863,
"BB_per_IP": 0.36986,
"SO_per_IP": 1.27397,
"HR_per_IP": 0.0411
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 15.0,
"R": 15.0,
"H": 33.0,
"BB": 14.0,
"SO": 74.0,
"HR": 5.0,
"BF": 207.0,
"Pitches": 854.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.5,
"H": 3.3,
"BB": 1.4,
"SO": 7.4,
"HR": 0.5,
"BF": 20.7,
"Pitches": 85.4
},
"rates": {
"ERA": 2.4847,
"WHIP": 0.865,
"ER_per_IP": 0.27607,
"H_per_IP": 0.60736,
"BB_per_IP": 0.25767,
"SO_per_IP": 1.36196,
"HR_per_IP": 0.09202
}
},
"season": {
"games": 29,
"totals": {
"IP": 169.1,
"ER": 35.0,
"R": 43.0,
"H": 94.0,
"BB": 42.0,
"SO": 247.0,
"HR": 14.0,
"BF": 646.0,
"Pitches": 2579.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2069,
"R": 1.4828,
"H": 3.2414,
"BB": 1.4483,
"SO": 8.5172,
"HR": 0.4828,
"BF": 22.2759,
"Pitches": 88.931
},
"rates": {
"ERA": 1.8602,
"WHIP": 0.8031,
"ER_per_IP": 0.20669,
"H_per_IP": 0.55512,
"BB_per_IP": 0.24803,
"SO_per_IP": 1.45866,
"HR_per_IP": 0.08268
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.73,
"predicted_H": 3.731,
"predicted_BB": 1.717,
"predicted_SO": 6.945,
"predicted_HR": 0.429,
"predicted_ERA": 2.8734,
"predicted_WHIP": 1.0058
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.73,
"final": 1.8413,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.731,
"final": 3.0176,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.717,
"final": 1.0093,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.945,
"final": 5.7312,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.429,
"final": 0.2522,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8734,
"final": 2.8734,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0058,
"final": 1.0058,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 15,
"H": 33,
"BB": 14,
"SO": 74,
"HR": 5,
"ERA": 2.484662576687117,
"WHIP": 0.8650306748466259,
"K9": 12.257668711656443,
"HR9": 0.8282208588957056,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 0.7618590624938131,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 161,
"wins": 102,
"losses": 59,
"win_pct": 0.6335,
"runs_scored": 826.0,
"runs_allowed": 614.0,
"run_differential": 212.0,
"run_differential_per_game": 1.3168,
"avg_runs_scored": 5.1304,
"avg_runs_allowed": 3.8137,
"offense_index": 1.1463,
"defense_index": 1.1735,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.3803
},
"opponent": {
"team": "STL",
"games": 161,
"wins": 77,
"losses": 84,
"win_pct": 0.4783,
"runs_scored": 716.0,
"runs_allowed": 743.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1677,
"avg_runs_scored": 4.4472,
"avg_runs_allowed": 4.6149,
"offense_index": 0.9937,
"defense_index": 0.9698,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.2,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.1441
},
"edges": {
"quality_edge": 0.5244,
"offense_edge": 0.1463,
"opponent_offense_edge": -0.0063,
"defense_strength": 0.1735,
"opponent_defense_weakness": 0.0302,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0264,
"run_prevention": 0.9554,
"strikeout": 1.0162
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 38.2,
"bb_percent": 6.5,
"woba": 0.217,
"xwoba": 0.223,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 3.7,
"hard_hit_percent": 33.0,
"avg_best_speed": 76.432,
"avg_hyper_speed": 92.9697,
"whiff_percent": 37.2,
"swing_percent": 51.3
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6511,
"command_and_miss": 1.7714,
"regression_edge": -0.1714,
"xwoba_edge": 2.5,
"barrel_edge": 0.7778,
"hard_hit_edge": 0.7,
"whiff_edge": 1.7143,
"bb_edge": 0.65,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.5351,
"release_spin_rate": 2568.6403,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.3904,
"sample_weight": 1.0,
"run_prevention_factor": 0.8818,
"strikeout_factor": 1.16,
"walk_factor": 0.948,
"homer_factor": 0.8348,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694819",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8818,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8818,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8348,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.16,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 82,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260927_STL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TB@PHI | away | Nick Martinez | Nick Martinez | True | 6.0 | 2.2 | -10 | 3 | 4 | 1 | 8/7 | 0/1 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.943609022556391,
"WHIP": 1.0657894736842104,
"IP": 177.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.911,
"recent_avg_IP": 5.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0293,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 0.9171,
"walk_factor": 0.888,
"homer_factor": 0.9551,
"regression_flag": "neutral",
"k_percent": 15.3,
"bb_percent": 3.5,
"woba": 0.289,
"xwoba": 0.305,
"barrel_percent": 6.7,
"hard_hit_percent": 32.5,
"whiff_percent": 17.4
},
"espn_rank": {
"rank": 18,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607259",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 10.0,
"R": 10.0,
"H": 24.0,
"BB": 3.0,
"SO": 21.0,
"HR": 5.0,
"BF": 113.0,
"Pitches": 405.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.8,
"BB": 0.6,
"SO": 4.2,
"HR": 1.0,
"BF": 22.6,
"Pitches": 81.0
},
"rates": {
"ERA": 3.0337,
"WHIP": 0.9101,
"ER_per_IP": 0.33708,
"H_per_IP": 0.80899,
"BB_per_IP": 0.10112,
"SO_per_IP": 0.70787,
"HR_per_IP": 0.16854
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 26.0,
"R": 26.0,
"H": 55.0,
"BB": 5.0,
"SO": 41.0,
"HR": 11.0,
"BF": 233.0,
"Pitches": 826.0
},
"per_game": {
"IP": 6.0,
"ER": 2.6,
"R": 2.6,
"H": 5.5,
"BB": 0.5,
"SO": 4.1,
"HR": 1.1,
"BF": 23.3,
"Pitches": 82.6
},
"rates": {
"ERA": 3.9,
"WHIP": 1.0,
"ER_per_IP": 0.43333,
"H_per_IP": 0.91667,
"BB_per_IP": 0.08333,
"SO_per_IP": 0.68333,
"HR_per_IP": 0.18333
}
},
"season": {
"games": 30,
"totals": {
"IP": 177.1,
"ER": 58.0,
"R": 58.0,
"H": 164.0,
"BB": 25.0,
"SO": 108.0,
"HR": 22.0,
"BF": 706.0,
"Pitches": 2474.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9333,
"R": 1.9333,
"H": 5.4667,
"BB": 0.8333,
"SO": 3.6,
"HR": 0.7333,
"BF": 23.5333,
"Pitches": 82.4667
},
"rates": {
"ERA": 2.9436,
"WHIP": 1.0658,
"ER_per_IP": 0.32707,
"H_per_IP": 0.92481,
"BB_per_IP": 0.14098,
"SO_per_IP": 0.60902,
"HR_per_IP": 0.12406
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.336,
"predicted_H": 5.317,
"predicted_BB": 0.854,
"predicted_SO": 4.297,
"predicted_HR": 0.975,
"predicted_ERA": 3.5039,
"predicted_WHIP": 1.0285
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.336,
"final": 2.6085,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.317,
"final": 6.418,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.854,
"final": 0.5035,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.297,
"final": 3.7647,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.975,
"final": 0.5749,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5039,
"final": 3.5039,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0285,
"final": 1.0285,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 26,
"H": 55,
"BB": 5,
"SO": 41,
"HR": 11,
"ERA": 3.9000000000000004,
"WHIP": 1.0000000000000002,
"K9": 6.15,
"HR9": 1.6500000000000001,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9244587557453467,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607259",
"player_name": "Nick Martinez",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 161,
"wins": 98,
"losses": 63,
"win_pct": 0.6087,
"runs_scored": 733.0,
"runs_allowed": 643.0,
"run_differential": 90.0,
"run_differential_per_game": 0.559,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 3.9938,
"offense_index": 1.0161,
"defense_index": 1.1219,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.6,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.196
},
"opponent": {
"team": "PHI",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 706.0,
"runs_allowed": 695.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0683,
"avg_runs_scored": 4.3851,
"avg_runs_allowed": 4.3168,
"offense_index": 0.9786,
"defense_index": 1.038,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.5,
"run_differential": -17.0
},
"available": true,
"quality_score": 0.0077
},
"edges": {
"quality_edge": 0.1883,
"offense_edge": 0.0161,
"opponent_offense_edge": -0.0214,
"defense_strength": 0.1219,
"opponent_defense_weakness": -0.038,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.012,
"run_prevention": 0.975,
"strikeout": 1.0074
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607259",
"profile": {
"available": true,
"pitcher_id": "607259",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 680.0,
"k_percent": 15.3,
"bb_percent": 3.5,
"woba": 0.289,
"xwoba": 0.305,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 32.5,
"avg_best_speed": 75.6782,
"avg_hyper_speed": 93.0609,
"whiff_percent": 17.4,
"swing_percent": 50.8
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3016,
"command_and_miss": -0.5407,
"regression_edge": -0.4571,
"xwoba_edge": 0.1714,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.7714,
"whiff_edge": -1.1143,
"bb_edge": 1.4,
"pitch_design_score": -0.1491
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607259",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 87.20062905927892,
"release_spin_rate": 2197.645020819482,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 87.20062905927892,
"release_spin_rate": 2197.645020819482,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.2006,
"release_spin_rate": 2197.645,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1491,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0653,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0293,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 0.9171,
"walk_factor": 0.888,
"homer_factor": 0.9551,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "607259",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0025,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0025,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.888,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9551,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9171,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260927_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TB@PHI | home | Zack Wheeler | Zack Wheeler | True | 6.0 | 6.0 | 0 | 3 | 1 | -2 | 3/5 | 2/0 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0576923076923075,
"WHIP": 1.0576923076923077,
"IP": 156.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.778,
"recent_avg_IP": 6.333,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7492,
"sample_weight": 1.0,
"run_prevention_factor": 0.9363,
"strikeout_factor": 1.0823,
"walk_factor": 0.97,
"homer_factor": 0.9227,
"regression_flag": "neutral",
"k_percent": 30.2,
"bb_percent": 7.6,
"woba": 0.278,
"xwoba": 0.265,
"barrel_percent": 6.0,
"hard_hit_percent": 35.0,
"whiff_percent": 31.4
},
"espn_rank": {
"rank": 8,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "554430",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 6.0,
"R": 6.0,
"H": 21.0,
"BB": 9.0,
"SO": 40.0,
"HR": 1.0,
"BF": 123.0,
"Pitches": 505.0
},
"per_game": {
"IP": 6.1,
"ER": 1.2,
"R": 1.2,
"H": 4.2,
"BB": 1.8,
"SO": 8.0,
"HR": 0.2,
"BF": 24.6,
"Pitches": 101.0
},
"rates": {
"ERA": 1.7053,
"WHIP": 0.9474,
"ER_per_IP": 0.18947,
"H_per_IP": 0.66316,
"BB_per_IP": 0.28421,
"SO_per_IP": 1.26316,
"HR_per_IP": 0.03158
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 24.0,
"R": 25.0,
"H": 46.0,
"BB": 24.0,
"SO": 65.0,
"HR": 7.0,
"BF": 226.0,
"Pitches": 938.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.5,
"H": 4.6,
"BB": 2.4,
"SO": 6.5,
"HR": 0.7,
"BF": 22.6,
"Pitches": 93.8
},
"rates": {
"ERA": 4.0755,
"WHIP": 1.3208,
"ER_per_IP": 0.45283,
"H_per_IP": 0.86792,
"BB_per_IP": 0.45283,
"SO_per_IP": 1.22642,
"HR_per_IP": 0.13208
}
},
"season": {
"games": 27,
"totals": {
"IP": 156.0,
"ER": 53.0,
"R": 54.0,
"H": 118.0,
"BB": 47.0,
"SO": 188.0,
"HR": 20.0,
"BF": 622.0,
"Pitches": 2552.0
},
"per_game": {
"IP": 5.2,
"ER": 1.963,
"R": 2.0,
"H": 4.3704,
"BB": 1.7407,
"SO": 6.963,
"HR": 0.7407,
"BF": 23.037,
"Pitches": 94.5185
},
"rates": {
"ERA": 3.0577,
"WHIP": 1.0577,
"ER_per_IP": 0.33974,
"H_per_IP": 0.75641,
"BB_per_IP": 0.30128,
"SO_per_IP": 1.20513,
"HR_per_IP": 0.12821
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.015,
"predicted_H": 4.637,
"predicted_BB": 2.066,
"predicted_SO": 6.998,
"predicted_HR": 0.563,
"predicted_ERA": 3.0878,
"predicted_WHIP": 1.1412
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.015,
"final": 2.4248,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.637,
"final": 3.956,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.066,
"final": 2.0385,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 6.998,
"final": 4.5029,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.563,
"final": 0.3288,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0878,
"final": 3.0878,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1412,
"final": 1.1412,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 24,
"H": 46,
"BB": 24,
"SO": 65,
"HR": 7,
"ERA": 4.075471698113207,
"WHIP": 1.320754716981132,
"K9": 11.037735849056602,
"HR9": 1.1886792452830186,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9522181897076107,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "554430",
"player_name": "Zack Wheeler",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 7.0,
"delta": 6.0,
"percent_delta": 6.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 7.0,
"delta": 6.0,
"percent_delta": 6.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 3.0,
"delta": -4.0,
"percent_delta": -0.5714,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 161,
"wins": 87,
"losses": 74,
"win_pct": 0.5404,
"runs_scored": 706.0,
"runs_allowed": 695.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0683,
"avg_runs_scored": 4.3851,
"avg_runs_allowed": 4.3168,
"offense_index": 0.9786,
"defense_index": 1.038,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.5,
"run_differential": -17.0
},
"available": true,
"quality_score": 0.0077
},
"opponent": {
"team": "TB",
"games": 161,
"wins": 98,
"losses": 63,
"win_pct": 0.6087,
"runs_scored": 733.0,
"runs_allowed": 643.0,
"run_differential": 90.0,
"run_differential_per_game": 0.559,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 3.9938,
"offense_index": 1.0161,
"defense_index": 1.1219,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 2.6,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.196
},
"edges": {
"quality_edge": -0.1883,
"offense_edge": -0.0214,
"opponent_offense_edge": 0.0161,
"defense_strength": 0.038,
"opponent_defense_weakness": -0.1219,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.993,
"run_prevention": 1.0082,
"strikeout": 0.9931
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "554430",
"profile": {
"available": true,
"pitcher_id": "554430",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 598.0,
"k_percent": 30.2,
"bb_percent": 7.6,
"woba": 0.278,
"xwoba": 0.265,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 35.0,
"avg_best_speed": 74.3242,
"avg_hyper_speed": 93.3559,
"whiff_percent": 31.4,
"swing_percent": 50.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8454,
"command_and_miss": 0.9121,
"regression_edge": 0.3714,
"xwoba_edge": 1.3143,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.4143,
"whiff_edge": 0.8857,
"bb_edge": 0.375,
"pitch_design_score": 0.0183
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "554430",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 101,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 90.19030757034128,
"release_spin_rate": 2366.8015860556898,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 90.19030757034128,
"release_spin_rate": 2366.8015860556898,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.1903,
"release_spin_rate": 2366.8016,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0183,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1306,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.7492,
"sample_weight": 1.0,
"run_prevention_factor": 0.9363,
"strikeout_factor": 1.0823,
"walk_factor": 0.97,
"homer_factor": 0.9227,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "554430",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9363,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9363,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9227,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0823,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260927_TB@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TEX@MIN | away | MacKenzie Gore | MacKenzie Gore | True | 4.2 | 2.1 | -7 | 4 | 1 | -3 | 3/1 | 2/1 | 6/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.587890625,
"WHIP": 1.341796875,
"IP": 170.2,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 5.172,
"recent_avg_IP": 4.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0124,
"sample_weight": 1.0,
"run_prevention_factor": 1.0011,
"strikeout_factor": 1.0086,
"walk_factor": 1.006,
"homer_factor": 1.0426,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 9.4,
"woba": 0.316,
"xwoba": 0.311,
"barrel_percent": 8.6,
"hard_hit_percent": 41.0,
"whiff_percent": 25.2
},
"espn_rank": {
"rank": 196,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669022",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 14.0,
"R": 15.0,
"H": 24.0,
"BB": 14.0,
"SO": 9.0,
"HR": 1.0,
"BF": 102.0,
"Pitches": 385.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8,
"R": 3.0,
"H": 4.8,
"BB": 2.8,
"SO": 1.8,
"HR": 0.2,
"BF": 20.4,
"Pitches": 77.0
},
"rates": {
"ERA": 5.9062,
"WHIP": 1.7812,
"ER_per_IP": 0.65625,
"H_per_IP": 1.125,
"BB_per_IP": 0.65625,
"SO_per_IP": 0.42188,
"HR_per_IP": 0.04688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 22.0,
"R": 23.0,
"H": 49.0,
"BB": 26.0,
"SO": 38.0,
"HR": 3.0,
"BF": 218.0,
"Pitches": 869.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.3,
"H": 4.9,
"BB": 2.6,
"SO": 3.8,
"HR": 0.3,
"BF": 21.8,
"Pitches": 86.9
},
"rates": {
"ERA": 4.125,
"WHIP": 1.5625,
"ER_per_IP": 0.45833,
"H_per_IP": 1.02083,
"BB_per_IP": 0.54167,
"SO_per_IP": 0.79167,
"HR_per_IP": 0.0625
}
},
"season": {
"games": 33,
"totals": {
"IP": 170.2,
"ER": 87.0,
"R": 88.0,
"H": 159.0,
"BB": 70.0,
"SO": 174.0,
"HR": 19.0,
"BF": 741.0,
"Pitches": 2937.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6364,
"R": 2.6667,
"H": 4.8182,
"BB": 2.1212,
"SO": 5.2727,
"HR": 0.5758,
"BF": 22.4545,
"Pitches": 89.0
},
"rates": {
"ERA": 4.5879,
"WHIP": 1.3418,
"ER_per_IP": 0.50977,
"H_per_IP": 0.93164,
"BB_per_IP": 0.41016,
"SO_per_IP": 1.01953,
"HR_per_IP": 0.11133
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.567,
"predicted_H": 4.844,
"predicted_BB": 2.523,
"predicted_SO": 3.283,
"predicted_HR": 0.355,
"predicted_ERA": 4.9658,
"predicted_WHIP": 1.5834
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4056,
"form_weight": 0.5944,
"form_reliability": 0.8684,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.567,
"final": 3.1482,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.844,
"final": 4.0961,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.523,
"final": 2.3109,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.283,
"final": 4.385,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.355,
"final": 0.6166,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9658,
"final": 4.9658,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5834,
"final": 1.5834,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 22,
"H": 49,
"BB": 26,
"SO": 38,
"HR": 3,
"ERA": 4.124999999999999,
"WHIP": 1.5624999999999998,
"K9": 7.124999999999999,
"HR9": 0.5624999999999999,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.9638337557453467,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669022",
"player_name": "MacKenzie Gore",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 669.0,
"runs_allowed": 713.0,
"run_differential": -44.0,
"run_differential_per_game": -0.2733,
"avg_runs_scored": 4.1553,
"avg_runs_allowed": 4.4286,
"offense_index": 0.9285,
"defense_index": 1.0106,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0362
},
"opponent": {
"team": "MIN",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 733.0,
"runs_allowed": 793.0,
"run_differential": -60.0,
"run_differential_per_game": -0.3727,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 4.9255,
"offense_index": 1.0173,
"defense_index": 0.9086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.2,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0346
},
"edges": {
"quality_edge": -0.0016,
"offense_edge": -0.0715,
"opponent_offense_edge": 0.0173,
"defense_strength": 0.0106,
"opponent_defense_weakness": 0.0914,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9996,
"run_prevention": 1.0018,
"strikeout": 0.9986
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669022",
"profile": {
"available": true,
"pitcher_id": "669022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 715.0,
"k_percent": 23.5,
"bb_percent": 9.4,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 41.0,
"avg_best_speed": 77.5967,
"avg_hyper_speed": 94.4996,
"whiff_percent": 25.2,
"swing_percent": 48.9
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0884,
"command_and_miss": 0.0814,
"regression_edge": 0.1429,
"xwoba_edge": 0.0,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.4429,
"whiff_edge": 0.0,
"bb_edge": -0.075,
"pitch_design_score": 0.0207
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.23294676003985,
"release_spin_rate": 2168.3870679330716,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.23294676003985,
"release_spin_rate": 2168.3870679330716,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.2329,
"release_spin_rate": 2168.3871,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0207,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1476,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0124,
"sample_weight": 1.0,
"run_prevention_factor": 1.0011,
"strikeout_factor": 1.0086,
"walk_factor": 1.006,
"homer_factor": 1.0426,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669022",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0011,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0011,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.006,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0426,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0086,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260927_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260927 | 20260927_TEX@MIN | home | Dean Kremer | Dean Kremer | True | 5.0 | 7.0 | 6 | 2 | 1 | -1 | 4/3 | 0/0 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.968,
"WHIP": 1.2000000000000002,
"IP": 83.1,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.208,
"recent_avg_IP": 4.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.086,
"sample_weight": 1.0,
"run_prevention_factor": 1.0073,
"strikeout_factor": 1.0314,
"walk_factor": 0.988,
"homer_factor": 1.0418,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 8.5,
"woba": 0.325,
"xwoba": 0.324,
"barrel_percent": 9.6,
"hard_hit_percent": 35.8,
"whiff_percent": 28.7
},
"espn_rank": {
"rank": 288,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "665152",
"report_date": "20260927",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 12.0,
"R": 13.0,
"H": 21.0,
"BB": 10.0,
"SO": 24.0,
"HR": 3.0,
"BF": 102.0,
"Pitches": 428.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.6,
"H": 4.2,
"BB": 2.0,
"SO": 4.8,
"HR": 0.6,
"BF": 20.4,
"Pitches": 85.6
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.2568,
"ER_per_IP": 0.48649,
"H_per_IP": 0.85135,
"BB_per_IP": 0.40541,
"SO_per_IP": 0.97297,
"HR_per_IP": 0.12162
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 28.0,
"R": 29.0,
"H": 41.0,
"BB": 21.0,
"SO": 48.0,
"HR": 7.0,
"BF": 211.0,
"Pitches": 876.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 2.9,
"H": 4.1,
"BB": 2.1,
"SO": 4.8,
"HR": 0.7,
"BF": 21.1,
"Pitches": 87.6
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.2078,
"ER_per_IP": 0.54545,
"H_per_IP": 0.7987,
"BB_per_IP": 0.40909,
"SO_per_IP": 0.93506,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 16,
"totals": {
"IP": 83.1,
"ER": 46.0,
"R": 49.0,
"H": 71.0,
"BB": 29.0,
"SO": 82.0,
"HR": 17.0,
"BF": 341.0,
"Pitches": 1392.0
},
"per_game": {
"IP": 5.1,
"ER": 2.875,
"R": 3.0625,
"H": 4.4375,
"BB": 1.8125,
"SO": 5.125,
"HR": 1.0625,
"BF": 21.3125,
"Pitches": 87.0
},
"rates": {
"ERA": 4.968,
"WHIP": 1.2,
"ER_per_IP": 0.552,
"H_per_IP": 0.852,
"BB_per_IP": 0.348,
"SO_per_IP": 0.984,
"HR_per_IP": 0.204
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.618,
"predicted_H": 4.389,
"predicted_BB": 1.977,
"predicted_SO": 4.827,
"predicted_HR": 0.73,
"predicted_ERA": 4.6658,
"predicted_WHIP": 1.2604
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.618,
"final": 2.3395,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.389,
"final": 4.2137,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.977,
"final": 1.0862,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.827,
"final": 4.905,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.73,
"final": 1.3023,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6658,
"final": 4.6658,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2604,
"final": 1.2604,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 28,
"H": 41,
"BB": 21,
"SO": 48,
"HR": 7,
"ERA": 4.909090909090909,
"WHIP": 1.2077922077922079,
"K9": 8.415584415584416,
"HR9": 1.2272727272727273,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-20T00:00:00"
},
"recent_form_boost": 1.0431762882128792,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "665152",
"player_name": "Dean Kremer",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 161,
"wins": 76,
"losses": 85,
"win_pct": 0.472,
"runs_scored": 733.0,
"runs_allowed": 793.0,
"run_differential": -60.0,
"run_differential_per_game": -0.3727,
"avg_runs_scored": 4.5528,
"avg_runs_allowed": 4.9255,
"offense_index": 1.0173,
"defense_index": 0.9086,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.2,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0346
},
"opponent": {
"team": "TEX",
"games": 161,
"wins": 80,
"losses": 81,
"win_pct": 0.4969,
"runs_scored": 669.0,
"runs_allowed": 713.0,
"run_differential": -44.0,
"run_differential_per_game": -0.2733,
"avg_runs_scored": 4.1553,
"avg_runs_allowed": 4.4286,
"offense_index": 0.9285,
"defense_index": 1.0106,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0362
},
"edges": {
"quality_edge": 0.0016,
"offense_edge": 0.0173,
"opponent_offense_edge": -0.0715,
"defense_strength": -0.0914,
"opponent_defense_weakness": -0.0106,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0002,
"run_prevention": 0.9976,
"strikeout": 1.0058
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "665152",
"profile": {
"available": true,
"pitcher_id": "665152",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 319.0,
"k_percent": 24.0,
"bb_percent": 8.5,
"woba": 0.325,
"xwoba": 0.324,
"sweet_spot_percent": 38.4,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 35.8,
"avg_best_speed": 76.8021,
"avg_hyper_speed": 93.6538,
"whiff_percent": 28.7,
"swing_percent": 46.0
},
"league_medians": {
"pa": 134.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6176,
"avg_hyper_speed": 93.8947,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2883,
"command_and_miss": 0.3336,
"regression_edge": 0.0286,
"xwoba_edge": -0.3714,
"barrel_edge": -0.5333,
"hard_hit_edge": 0.3,
"whiff_edge": 0.5,
"bb_edge": 0.15,
"pitch_design_score": -0.1761
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "665152",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.71852131574862,
"release_spin_rate": 2103.3959956974113,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.71852131574862,
"release_spin_rate": 2103.3959956974113,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.7185,
"release_spin_rate": 2103.396,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1761,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2582,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.086,
"sample_weight": 1.0,
"run_prevention_factor": 1.0073,
"strikeout_factor": 1.0314,
"walk_factor": 0.988,
"homer_factor": 1.0418,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "665152",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0073,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0073,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.988,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0418,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0314,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260927_TEX@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |