| 20260908 | 20260908_ARI@KC | away | Corbin Burnes | Corbin Burnes | True | 1.1 | 3.0 | 5 | 1 | 0 | -1 | 2/2 | 0/2 | 4/2 | 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": "669203",
"report_date": "20260908",
"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.167,
"predicted_H": 0.324,
"predicted_BB": 0.124,
"predicted_SO": 0.313,
"predicted_HR": 0.049,
"predicted_ERA": 4.4998,
"predicted_WHIP": 1.3451
}
},
"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": 1.0,
"form": 0.167,
"final": 0.8105,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 0.324,
"final": 1.6187,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.124,
"final": 0.0282,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 0.313,
"final": 4.7062,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.049,
"final": 0.0111,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4998,
"final": 4.4998,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3451,
"final": 1.3451,
"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": 1.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "669203",
"player_name": "Corbin Burnes",
"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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 0.1,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 1.1,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 0.1,
"after": 1.1,
"delta": 1.0,
"percent_delta": 10.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.1,
"delta": 1.0,
"percent_delta": 10.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 1.1,
"delta": 1.0,
"percent_delta": 10.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.1,
"delta": 1.0,
"percent_delta": 10.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 145,
"wins": 77,
"losses": 68,
"win_pct": 0.531,
"runs_scored": 641.0,
"runs_allowed": 641.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 4.4207,
"avg_runs_allowed": 4.4207,
"offense_index": 0.9889,
"defense_index": 1.0112,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.5,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0614
},
"opponent": {
"team": "KC",
"games": 145,
"wins": 64,
"losses": 81,
"win_pct": 0.4414,
"runs_scored": 621.0,
"runs_allowed": 710.0,
"run_differential": -89.0,
"run_differential_per_game": -0.6138,
"avg_runs_scored": 4.2828,
"avg_runs_allowed": 4.8966,
"offense_index": 0.9581,
"defense_index": 0.9129,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1603
},
"edges": {
"quality_edge": 0.2217,
"offense_edge": -0.0111,
"opponent_offense_edge": -0.0419,
"defense_strength": 0.0112,
"opponent_defense_weakness": 0.0871,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0109,
"run_prevention": 0.9811,
"strikeout": 1.01
}
},
"simulation_box_score_stats": {
"predicted_IP": 1.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 6,
"Pitches": 23,
"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."
}
],
"provenance": {
"prediction": "output/games/20260908_ARI@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"
}
} |
| 20260908 | 20260908_ARI@KC | home | Michael Wacha | Michael Wacha | True | 6.1 | 6.0 | -1 | 3 | 0 | -3 | 7/3 | 1/4 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3622641509433966,
"WHIP": 1.1037735849056605,
"IP": 176.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 6.31,
"recent_avg_IP": 6.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0298,
"sample_weight": 1.0,
"run_prevention_factor": 0.9975,
"strikeout_factor": 0.9726,
"walk_factor": 0.94,
"homer_factor": 0.9827,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 6.2,
"woba": 0.301,
"xwoba": 0.305,
"barrel_percent": 6.9,
"hard_hit_percent": 36.4,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 16,
"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": "608379",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.2,
"ER": 11.0,
"R": 11.0,
"H": 26.0,
"BB": 3.0,
"SO": 31.0,
"HR": 7.0,
"BF": 127.0,
"Pitches": 470.0
},
"per_game": {
"IP": 6.2,
"ER": 2.2,
"R": 2.2,
"H": 5.2,
"BB": 0.6,
"SO": 6.2,
"HR": 1.4,
"BF": 25.4,
"Pitches": 94.0
},
"rates": {
"ERA": 3.0306,
"WHIP": 0.8878,
"ER_per_IP": 0.33673,
"H_per_IP": 0.79592,
"BB_per_IP": 0.09184,
"SO_per_IP": 0.94898,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 22.0,
"R": 24.0,
"H": 49.0,
"BB": 13.0,
"SO": 52.0,
"HR": 11.0,
"BF": 248.0,
"Pitches": 959.0
},
"per_game": {
"IP": 6.1,
"ER": 2.2,
"R": 2.4,
"H": 4.9,
"BB": 1.3,
"SO": 5.2,
"HR": 1.1,
"BF": 24.8,
"Pitches": 95.9
},
"rates": {
"ERA": 3.1935,
"WHIP": 1.0,
"ER_per_IP": 0.35484,
"H_per_IP": 0.79032,
"BB_per_IP": 0.20968,
"SO_per_IP": 0.83871,
"HR_per_IP": 0.17742
}
},
"season": {
"games": 28,
"totals": {
"IP": 176.2,
"ER": 66.0,
"R": 70.0,
"H": 151.0,
"BB": 44.0,
"SO": 143.0,
"HR": 24.0,
"BF": 712.0,
"Pitches": 2633.0
},
"per_game": {
"IP": 6.1,
"ER": 2.3571,
"R": 2.5,
"H": 5.3929,
"BB": 1.5714,
"SO": 5.1071,
"HR": 0.8571,
"BF": 25.4286,
"Pitches": 94.0357
},
"rates": {
"ERA": 3.3623,
"WHIP": 1.1038,
"ER_per_IP": 0.37358,
"H_per_IP": 0.85472,
"BB_per_IP": 0.24906,
"SO_per_IP": 0.80943,
"HR_per_IP": 0.13585
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.41,
"predicted_H": 5.369,
"predicted_BB": 1.266,
"predicted_SO": 5.758,
"predicted_HR": 1.161,
"predicted_ERA": 3.3578,
"predicted_WHIP": 1.0271
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.41,
"final": 3.0683,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.369,
"final": 6.4583,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.266,
"final": 1.1559,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.758,
"final": 5.4442,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.161,
"final": 1.0943,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3578,
"final": 3.3578,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0271,
"final": 1.0271,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 22,
"H": 49,
"BB": 13,
"SO": 52,
"HR": 11,
"ERA": 3.193548387096774,
"WHIP": 1.0,
"K9": 7.548387096774194,
"HR9": 1.596774193548387,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 0.857580961571928,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608379",
"player_name": "Michael Wacha",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 145,
"wins": 64,
"losses": 81,
"win_pct": 0.4414,
"runs_scored": 621.0,
"runs_allowed": 710.0,
"run_differential": -89.0,
"run_differential_per_game": -0.6138,
"avg_runs_scored": 4.2828,
"avg_runs_allowed": 4.8966,
"offense_index": 0.9581,
"defense_index": 0.9129,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1603
},
"opponent": {
"team": "ARI",
"games": 145,
"wins": 77,
"losses": 68,
"win_pct": 0.531,
"runs_scored": 641.0,
"runs_allowed": 641.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 4.4207,
"avg_runs_allowed": 4.4207,
"offense_index": 0.9889,
"defense_index": 1.0112,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.5,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0614
},
"edges": {
"quality_edge": -0.2217,
"offense_edge": -0.0419,
"opponent_offense_edge": -0.0111,
"defense_strength": -0.0871,
"opponent_defense_weakness": -0.0112,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.989,
"run_prevention": 1.018,
"strikeout": 0.9942
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608379",
"profile": {
"available": true,
"pitcher_id": "608379",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 604.0,
"k_percent": 20.1,
"bb_percent": 6.2,
"woba": 0.301,
"xwoba": 0.305,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 36.4,
"avg_best_speed": 77.484,
"avg_hyper_speed": 93.5566,
"whiff_percent": 22.1,
"swing_percent": 48.9
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1511,
"command_and_miss": -0.1171,
"regression_edge": -0.1143,
"xwoba_edge": 0.1714,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.2143,
"whiff_edge": -0.4143,
"bb_edge": 0.75,
"pitch_design_score": -0.162
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608379",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 86.98359735962079,
"release_spin_rate": 1984.113597852512,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 86.98359735962079,
"release_spin_rate": 1984.113597852512,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.9836,
"release_spin_rate": 1984.1136,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.162,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1571,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0298,
"sample_weight": 1.0,
"run_prevention_factor": 0.9975,
"strikeout_factor": 0.9726,
"walk_factor": 0.94,
"homer_factor": 0.9827,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "608379",
"espn_id": 32640,
"player_name": "Michael Wacha",
"team": "KC",
"role": "pitcher",
"espn_rank": 16,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 16,
"gp_value": 28.0,
"gp_rank": 248,
"gs_value": 28.0,
"gs_rank": 17,
"qs_value": 19.0,
"qs_rank": 3,
"era_value": 3.3622,
"era_rank": 19.0,
"w_value": 9.0,
"w_rank": 40,
"l_value": 8.0,
"l_rank": 56,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 176.2,
"ip_rank": 4,
"h_value": 151.0,
"h_rank": 15,
"er_value": 66.0,
"er_rank": 45,
"hr_value": 24.0,
"hr_rank": 15,
"bb_value": 44.0,
"bb_rank": 63,
"k_value": 143.0,
"k_rank": 37,
"k_per_9_value": 7.284906,
"k_per_9_rank": 249,
"whip_value": 1.1037,
"whip_rank": 15.0,
"war_value": 3.64,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9975,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9975,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.94,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9827,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9726,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260908_ARI@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"
}
} |
| 20260908 | 20260908_CHC@MIL | away | David Peterson | David Peterson | True | 4.0 | 4.1 | 1 | 2 | 1 | -1 | 7/6 | 1/3 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.3858267716535435,
"WHIP": 1.5590551181102361,
"IP": 127.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.0,
"recent_avg_IP": 4.933,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3591,
"sample_weight": 1.0,
"run_prevention_factor": 1.0305,
"strikeout_factor": 0.9686,
"walk_factor": 1.01,
"homer_factor": 1.0325,
"regression_flag": "neutral",
"k_percent": 19.5,
"bb_percent": 9.7,
"woba": 0.339,
"xwoba": 0.34,
"barrel_percent": 6.5,
"hard_hit_percent": 41.1,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 836,
"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": "656849",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 13.0,
"R": 14.0,
"H": 26.0,
"BB": 13.0,
"SO": 25.0,
"HR": 3.0,
"BF": 103.0,
"Pitches": 394.0
},
"per_game": {
"IP": 4.1,
"ER": 2.6,
"R": 2.8,
"H": 5.2,
"BB": 2.6,
"SO": 5.0,
"HR": 0.6,
"BF": 20.6,
"Pitches": 78.8
},
"rates": {
"ERA": 5.5714,
"WHIP": 1.8571,
"ER_per_IP": 0.61905,
"H_per_IP": 1.2381,
"BB_per_IP": 0.61905,
"SO_per_IP": 1.19048,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 18.0,
"R": 20.0,
"H": 46.0,
"BB": 23.0,
"SO": 45.0,
"HR": 6.0,
"BF": 217.0,
"Pitches": 837.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.0,
"H": 4.6,
"BB": 2.3,
"SO": 4.5,
"HR": 0.6,
"BF": 21.7,
"Pitches": 83.7
},
"rates": {
"ERA": 3.2617,
"WHIP": 1.3893,
"ER_per_IP": 0.36242,
"H_per_IP": 0.92617,
"BB_per_IP": 0.46309,
"SO_per_IP": 0.90604,
"HR_per_IP": 0.12081
}
},
"season": {
"games": 28,
"totals": {
"IP": 127.0,
"ER": 76.0,
"R": 83.0,
"H": 142.0,
"BB": 56.0,
"SO": 113.0,
"HR": 14.0,
"BF": 579.0,
"Pitches": 2134.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7143,
"R": 2.9643,
"H": 5.0714,
"BB": 2.0,
"SO": 4.0357,
"HR": 0.5,
"BF": 20.6786,
"Pitches": 76.2143
},
"rates": {
"ERA": 5.3858,
"WHIP": 1.5591,
"ER_per_IP": 0.59843,
"H_per_IP": 1.11811,
"BB_per_IP": 0.44094,
"SO_per_IP": 0.88976,
"HR_per_IP": 0.11024
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.444,
"predicted_H": 5.087,
"predicted_BB": 2.368,
"predicted_SO": 4.769,
"predicted_HR": 0.616,
"predicted_ERA": 4.6916,
"predicted_WHIP": 1.59
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.444,
"final": 2.2602,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.087,
"final": 5.879,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.368,
"final": 1.8016,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.769,
"final": 6.1067,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.616,
"final": 0.361,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6916,
"final": 4.6916,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.59,
"final": 1.59,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 18,
"H": 46,
"BB": 23,
"SO": 45,
"HR": 6,
"ERA": 3.261744966442953,
"WHIP": 1.389261744966443,
"K9": 8.154362416107382,
"HR9": 1.087248322147651,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.8749846203725342,
"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": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656849",
"player_name": "David Peterson",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"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": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"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": "CHC",
"games": 145,
"wins": 81,
"losses": 64,
"win_pct": 0.5586,
"runs_scored": 771.0,
"runs_allowed": 640.0,
"run_differential": 131.0,
"run_differential_per_game": 0.9034,
"avg_runs_scored": 5.3172,
"avg_runs_allowed": 4.4138,
"offense_index": 1.1874,
"defense_index": 1.0146,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 5.4,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.1608
},
"opponent": {
"team": "MIL",
"games": 145,
"wins": 89,
"losses": 56,
"win_pct": 0.6138,
"runs_scored": 730.0,
"runs_allowed": 561.0,
"run_differential": 169.0,
"run_differential_per_game": 1.1655,
"avg_runs_scored": 5.0345,
"avg_runs_allowed": 3.869,
"offense_index": 1.1242,
"defense_index": 1.1575,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 6.5,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.2399
},
"edges": {
"quality_edge": -0.0791,
"offense_edge": 0.1874,
"opponent_offense_edge": 0.1242,
"defense_strength": 0.0146,
"opponent_defense_weakness": -0.1575,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9923,
"run_prevention": 1.0224,
"strikeout": 0.9877
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656849",
"profile": {
"available": true,
"pitcher_id": "656849",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 503.0,
"k_percent": 19.5,
"bb_percent": 9.7,
"woba": 0.339,
"xwoba": 0.34,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 41.1,
"avg_best_speed": 78.2358,
"avg_hyper_speed": 94.5237,
"whiff_percent": 22.0,
"swing_percent": 46.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4723,
"command_and_miss": -0.3357,
"regression_edge": -0.0286,
"xwoba_edge": -0.8286,
"barrel_edge": 0.1333,
"hard_hit_edge": -0.4571,
"whiff_edge": -0.4286,
"bb_edge": -0.125,
"pitch_design_score": -0.0559
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656849",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 67,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 88.87843836354706,
"release_spin_rate": 2125.964579008083,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 88.87843836354706,
"release_spin_rate": 2125.964579008083,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.8784,
"release_spin_rate": 2125.9646,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0559,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3992,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3591,
"sample_weight": 1.0,
"run_prevention_factor": 1.0305,
"strikeout_factor": 0.9686,
"walk_factor": 1.01,
"homer_factor": 1.0325,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656849",
"espn_id": 40921,
"player_name": "David Peterson",
"team": "CHC",
"role": "pitcher",
"espn_rank": 836,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 836,
"gp_value": 28.0,
"gp_rank": 248,
"gs_value": 19.0,
"gs_rank": 101,
"qs_value": 3.0,
"qs_rank": 138,
"era_value": 5.3858,
"era_rank": null,
"w_value": 7.0,
"w_rank": 83,
"l_value": 8.0,
"l_rank": 56,
"sv_value": 1.0,
"sv_rank": 137,
"hld_value": 1.0,
"hld_rank": 267,
"ip_value": 127.0,
"ip_rank": 85,
"h_value": 142.0,
"h_rank": 27,
"er_value": 76.0,
"er_rank": 14,
"hr_value": 14.0,
"hr_rank": 106,
"bb_value": 56.0,
"bb_rank": 22,
"k_value": 113.0,
"k_rank": 81,
"k_per_9_value": 8.0078745,
"k_per_9_rank": 25,
"whip_value": 1.559,
"whip_rank": null,
"war_value": -0.99,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0305,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0305,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.01,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0325,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9686,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 7,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"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/20260908_CHC@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"
}
} |
| 20260908 | 20260908_CHC@MIL | home | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 6.1 | 1 | 3 | 1 | -2 | 4/4 | 3/2 | 10/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.9741935483870967,
"WHIP": 0.7935483870967742,
"IP": 155.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.962,
"recent_avg_IP": 5.6,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.3893,
"sample_weight": 1.0,
"run_prevention_factor": 0.8819,
"strikeout_factor": 1.16,
"walk_factor": 0.948,
"homer_factor": 0.8393,
"regression_flag": "neutral",
"k_percent": 38.3,
"bb_percent": 6.6,
"woba": 0.218,
"xwoba": 0.224,
"barrel_percent": 3.8,
"hard_hit_percent": 33.1,
"whiff_percent": 37.5
},
"espn_rank": {
"rank": 8,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 155.0,
"season_ERA": 1.974,
"season_WHIP": 0.794,
"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": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694819",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 10.0,
"SO": 32.0,
"HR": 3.0,
"BF": 112.0,
"Pitches": 469.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 2.0,
"SO": 6.4,
"HR": 0.6,
"BF": 22.4,
"Pitches": 93.8
},
"rates": {
"ERA": 3.5357,
"WHIP": 1.0714,
"ER_per_IP": 0.39286,
"H_per_IP": 0.71429,
"BB_per_IP": 0.35714,
"SO_per_IP": 1.14286,
"HR_per_IP": 0.10714
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 18.0,
"R": 23.0,
"H": 35.0,
"BB": 12.0,
"SO": 81.0,
"HR": 9.0,
"BF": 216.0,
"Pitches": 885.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 2.3,
"H": 3.5,
"BB": 1.2,
"SO": 8.1,
"HR": 0.9,
"BF": 21.6,
"Pitches": 88.5
},
"rates": {
"ERA": 2.8929,
"WHIP": 0.8393,
"ER_per_IP": 0.32143,
"H_per_IP": 0.625,
"BB_per_IP": 0.21429,
"SO_per_IP": 1.44643,
"HR_per_IP": 0.16071
}
},
"season": {
"games": 26,
"totals": {
"IP": 155.0,
"ER": 34.0,
"R": 42.0,
"H": 84.0,
"BB": 39.0,
"SO": 227.0,
"HR": 14.0,
"BF": 592.0,
"Pitches": 2360.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3077,
"R": 1.6154,
"H": 3.2308,
"BB": 1.5,
"SO": 8.7308,
"HR": 0.5385,
"BF": 22.7692,
"Pitches": 90.7692
},
"rates": {
"ERA": 1.9742,
"WHIP": 0.7935,
"ER_per_IP": 0.21935,
"H_per_IP": 0.54194,
"BB_per_IP": 0.25161,
"SO_per_IP": 1.46452,
"HR_per_IP": 0.09032
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.08,
"predicted_H": 4.049,
"predicted_BB": 1.732,
"predicted_SO": 7.239,
"predicted_HR": 0.73,
"predicted_ERA": 3.2406,
"predicted_WHIP": 1.0008
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.08,
"final": 2.4647,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.049,
"final": 4.0285,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.732,
"final": 2.2622,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 7.239,
"final": 7.5572,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.73,
"final": 0.4248,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2406,
"final": 3.2406,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0008,
"final": 1.0008,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 18,
"H": 35,
"BB": 12,
"SO": 81,
"HR": 9,
"ERA": 2.892857142857143,
"WHIP": 0.8392857142857143,
"K9": 13.017857142857142,
"HR9": 1.4464285714285714,
"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-02T00:00:00"
},
"recent_form_boost": 0.8197353394521123,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 8,
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 145,
"wins": 89,
"losses": 56,
"win_pct": 0.6138,
"runs_scored": 730.0,
"runs_allowed": 561.0,
"run_differential": 169.0,
"run_differential_per_game": 1.1655,
"avg_runs_scored": 5.0345,
"avg_runs_allowed": 3.869,
"offense_index": 1.1242,
"defense_index": 1.1575,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 6.5,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.2399
},
"opponent": {
"team": "CHC",
"games": 145,
"wins": 81,
"losses": 64,
"win_pct": 0.5586,
"runs_scored": 771.0,
"runs_allowed": 640.0,
"run_differential": 131.0,
"run_differential_per_game": 0.9034,
"avg_runs_scored": 5.3172,
"avg_runs_allowed": 4.4138,
"offense_index": 1.1874,
"defense_index": 1.0146,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 5.4,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.1608
},
"edges": {
"quality_edge": 0.0791,
"offense_edge": 0.1242,
"opponent_offense_edge": 0.1874,
"defense_strength": 0.1575,
"opponent_defense_weakness": -0.0146,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 1.0103,
"strikeout": 0.9874
},
"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": 525.0,
"k_percent": 38.3,
"bb_percent": 6.6,
"woba": 0.218,
"xwoba": 0.224,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 3.8,
"hard_hit_percent": 33.1,
"avg_best_speed": 76.2869,
"avg_hyper_speed": 92.9909,
"whiff_percent": 37.5,
"swing_percent": 50.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6344,
"command_and_miss": 1.8029,
"regression_edge": -0.1714,
"xwoba_edge": 2.4857,
"barrel_edge": 0.7333,
"hard_hit_edge": 0.6857,
"whiff_edge": 1.7857,
"bb_edge": 0.65,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.61667244035621,
"release_spin_rate": 2563.200146698222,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.61667244035621,
"release_spin_rate": 2563.200146698222,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.6167,
"release_spin_rate": 2563.2001,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"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.3893,
"sample_weight": 1.0,
"run_prevention_factor": 0.8819,
"strikeout_factor": 1.16,
"walk_factor": 0.948,
"homer_factor": 0.8393,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694819",
"espn_id": 5080761,
"player_name": "Jacob Misiorowski",
"team": "MIL",
"role": "pitcher",
"espn_rank": 8,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 8,
"gp_value": 26.0,
"gp_rank": 301,
"gs_value": 26.0,
"gs_rank": 50,
"qs_value": 17.0,
"qs_rank": 8,
"era_value": 1.9741,
"era_rank": 1.0,
"w_value": 14.0,
"w_rank": 6,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 155.0,
"ip_rank": 32,
"h_value": 84.0,
"h_rank": 134,
"er_value": 34.0,
"er_rank": 169,
"hr_value": 14.0,
"hr_rank": 106,
"bb_value": 39.0,
"bb_rank": 90,
"k_value": 227.0,
"k_rank": 2,
"k_per_9_value": 13.180646,
"k_per_9_rank": 1,
"whip_value": 0.7935,
"whip_rank": 1.0,
"war_value": 5.17,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.8819,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.8819,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8393,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.16,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 10,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 112,
"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/20260908_CHC@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"
}
} |
| 20260908 | 20260908_CIN@LAD | away | Nick Lodolo | Nick Lodolo | True | 4.0 | 4.2 | 2 | 6 | 3 | -3 | 6/5 | 3/3 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.08235294117647,
"WHIP": 1.5176470588235293,
"IP": 85.0,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.0,
"recent_avg_IP": 4.467,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.8668,
"sample_weight": 1.0,
"run_prevention_factor": 1.0737,
"strikeout_factor": 0.96,
"walk_factor": 0.998,
"homer_factor": 1.1313,
"regression_flag": "neutral",
"k_percent": 18.0,
"bb_percent": 9.1,
"woba": 0.377,
"xwoba": 0.382,
"barrel_percent": 10.0,
"hard_hit_percent": 41.2,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 205,
"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": "666157",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 16.0,
"R": 16.0,
"H": 29.0,
"BB": 8.0,
"SO": 19.0,
"HR": 7.0,
"BF": 104.0,
"Pitches": 429.0
},
"per_game": {
"IP": 4.1,
"ER": 3.2,
"R": 3.2,
"H": 5.8,
"BB": 1.6,
"SO": 3.8,
"HR": 1.4,
"BF": 20.8,
"Pitches": 85.8
},
"rates": {
"ERA": 6.4478,
"WHIP": 1.6567,
"ER_per_IP": 0.71642,
"H_per_IP": 1.29851,
"BB_per_IP": 0.35821,
"SO_per_IP": 0.85075,
"HR_per_IP": 0.31343
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.0,
"ER": 26.0,
"R": 26.0,
"H": 54.0,
"BB": 20.0,
"SO": 39.0,
"HR": 8.0,
"BF": 212.0,
"Pitches": 865.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.4,
"BB": 2.0,
"SO": 3.9,
"HR": 0.8,
"BF": 21.2,
"Pitches": 86.5
},
"rates": {
"ERA": 4.9787,
"WHIP": 1.5745,
"ER_per_IP": 0.55319,
"H_per_IP": 1.14894,
"BB_per_IP": 0.42553,
"SO_per_IP": 0.82979,
"HR_per_IP": 0.17021
}
},
"season": {
"games": 17,
"totals": {
"IP": 85.0,
"ER": 48.0,
"R": 48.0,
"H": 94.0,
"BB": 35.0,
"SO": 69.0,
"HR": 16.0,
"BF": 383.0,
"Pitches": 1516.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8235,
"R": 2.8235,
"H": 5.5294,
"BB": 2.0588,
"SO": 4.0588,
"HR": 0.9412,
"BF": 22.5294,
"Pitches": 89.1765
},
"rates": {
"ERA": 5.0824,
"WHIP": 1.5176,
"ER_per_IP": 0.56471,
"H_per_IP": 1.10588,
"BB_per_IP": 0.41176,
"SO_per_IP": 0.81176,
"HR_per_IP": 0.18824
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.805,
"predicted_H": 5.4,
"predicted_BB": 1.814,
"predicted_SO": 4.02,
"predicted_HR": 1.017,
"predicted_ERA": 5.3967,
"predicted_WHIP": 1.5421
}
},
"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": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.805,
"final": 4.2301,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.4,
"final": 5.6676,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.814,
"final": 2.343,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.02,
"final": 4.4571,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.017,
"final": 0.5634,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3967,
"final": 5.3967,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5421,
"final": 1.5421,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.0,
"ER": 26,
"H": 54,
"BB": 20,
"SO": 39,
"HR": 8,
"ERA": 4.9787234042553195,
"WHIP": 1.574468085106383,
"K9": 7.468085106382978,
"HR9": 1.5319148936170213,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.072774853129924,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 6,
"predicted_H": 6,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "666157",
"player_name": "Nick Lodolo",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 6.0,
"predicted_H": 6.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": 3.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"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.0,
"delta": -1.0,
"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": 3.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 6.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"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.0,
"delta": -1.0,
"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": "CIN",
"games": 144,
"wins": 69,
"losses": 75,
"win_pct": 0.4792,
"runs_scored": 608.0,
"runs_allowed": 716.0,
"run_differential": -108.0,
"run_differential_per_game": -0.75,
"avg_runs_scored": 4.2222,
"avg_runs_allowed": 4.9722,
"offense_index": 0.9419,
"defense_index": 0.9015,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.8,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0747
},
"opponent": {
"team": "LAD",
"games": 144,
"wins": 87,
"losses": 57,
"win_pct": 0.6042,
"runs_scored": 711.0,
"runs_allowed": 556.0,
"run_differential": 155.0,
"run_differential_per_game": 1.0764,
"avg_runs_scored": 4.9375,
"avg_runs_allowed": 3.8611,
"offense_index": 1.1015,
"defense_index": 1.1609,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.3,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.2906
},
"edges": {
"quality_edge": -0.3653,
"offense_edge": -0.0581,
"opponent_offense_edge": 0.1015,
"defense_strength": -0.0985,
"opponent_defense_weakness": -0.1609,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9784,
"run_prevention": 1.0444,
"strikeout": 0.9809
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "666157",
"profile": {
"available": true,
"pitcher_id": "666157",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 307.0,
"k_percent": 18.0,
"bb_percent": 9.1,
"woba": 0.377,
"xwoba": 0.382,
"sweet_spot_percent": 38.2,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 41.2,
"avg_best_speed": 80.1594,
"avg_hyper_speed": 94.8197,
"whiff_percent": 22.0,
"swing_percent": 45.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.3345,
"command_and_miss": -0.4021,
"regression_edge": -0.1429,
"xwoba_edge": -2.0286,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.4714,
"whiff_edge": -0.4286,
"bb_edge": 0.025,
"pitch_design_score": -0.008
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666157",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.73344991310856,
"release_spin_rate": 2279.7813049186448,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.73344991310856,
"release_spin_rate": 2279.7813049186448,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.7334,
"release_spin_rate": 2279.7813,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.008,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0572,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.8668,
"sample_weight": 1.0,
"run_prevention_factor": 1.0737,
"strikeout_factor": 0.96,
"walk_factor": 0.998,
"homer_factor": 1.1313,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "666157",
"espn_id": 42433,
"player_name": "Nick Lodolo",
"team": "CIN",
"role": "pitcher",
"espn_rank": 205,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 205,
"gp_value": 17.0,
"gp_rank": 427,
"gs_value": 17.0,
"gs_rank": 119,
"qs_value": 4.0,
"qs_rank": 122,
"era_value": 5.0823,
"era_rank": null,
"w_value": 3.0,
"w_rank": 242,
"l_value": 3.0,
"l_rank": 236,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 85.0,
"ip_rank": 151,
"h_value": 94.0,
"h_rank": 122,
"er_value": 48.0,
"er_rank": 114,
"hr_value": 16.0,
"hr_rank": 80,
"bb_value": 35.0,
"bb_rank": 119,
"k_value": 69.0,
"k_rank": 181,
"k_per_9_value": 7.305882,
"k_per_9_rank": 32,
"whip_value": 1.5176,
"whip_rank": null,
"war_value": 0.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0737,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0737,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1313,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.96,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"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/20260908_CIN@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_CIN@LAD | home | Tarik Skubal | Tarik Skubal | True | 6.0 | 7.1 | 4 | 1 | 2 | 1 | 2/4 | 4/2 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.856423173803526,
"WHIP": 0.9823677581863979,
"IP": 132.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 6.015,
"recent_avg_IP": 5.933,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.729,
"sample_weight": 1.0,
"run_prevention_factor": 0.938,
"strikeout_factor": 1.0863,
"walk_factor": 0.9,
"homer_factor": 0.9572,
"regression_flag": "neutral",
"k_percent": 30.5,
"bb_percent": 4.2,
"woba": 0.269,
"xwoba": 0.269,
"barrel_percent": 7.2,
"hard_hit_percent": 36.4,
"whiff_percent": 31.6
},
"espn_rank": {
"rank": 17,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669373",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 10.0,
"R": 11.0,
"H": 30.0,
"BB": 6.0,
"SO": 37.0,
"HR": 1.0,
"BF": 123.0,
"Pitches": 495.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.2,
"H": 6.0,
"BB": 1.2,
"SO": 7.4,
"HR": 0.2,
"BF": 24.6,
"Pitches": 99.0
},
"rates": {
"ERA": 3.0337,
"WHIP": 1.2135,
"ER_per_IP": 0.33708,
"H_per_IP": 1.01124,
"BB_per_IP": 0.20225,
"SO_per_IP": 1.24719,
"HR_per_IP": 0.03371
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.2,
"ER": 18.0,
"R": 19.0,
"H": 51.0,
"BB": 12.0,
"SO": 75.0,
"HR": 2.0,
"BF": 245.0,
"Pitches": 943.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.9,
"H": 5.1,
"BB": 1.2,
"SO": 7.5,
"HR": 0.2,
"BF": 24.5,
"Pitches": 94.3
},
"rates": {
"ERA": 2.627,
"WHIP": 1.0216,
"ER_per_IP": 0.29189,
"H_per_IP": 0.82703,
"BB_per_IP": 0.19459,
"SO_per_IP": 1.21622,
"HR_per_IP": 0.03243
}
},
"season": {
"games": 22,
"totals": {
"IP": 132.1,
"ER": 42.0,
"R": 46.0,
"H": 108.0,
"BB": 22.0,
"SO": 159.0,
"HR": 12.0,
"BF": 521.0,
"Pitches": 2011.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9091,
"R": 2.0909,
"H": 4.9091,
"BB": 1.0,
"SO": 7.2273,
"HR": 0.5455,
"BF": 23.6818,
"Pitches": 91.4091
},
"rates": {
"ERA": 2.8564,
"WHIP": 0.9824,
"ER_per_IP": 0.31738,
"H_per_IP": 0.81612,
"BB_per_IP": 0.16625,
"SO_per_IP": 1.20151,
"HR_per_IP": 0.09068
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.107,
"predicted_H": 5.519,
"predicted_BB": 1.354,
"predicted_SO": 7.045,
"predicted_HR": 0.381,
"predicted_ERA": 3.1603,
"predicted_WHIP": 1.1455
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.107,
"final": 1.6329,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.519,
"final": 4.012,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.354,
"final": 2.4871,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 7.045,
"final": 5.3127,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.381,
"final": 0.2178,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1603,
"final": 3.1603,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1455,
"final": 1.1455,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.2,
"ER": 18,
"H": 51,
"BB": 12,
"SO": 75,
"HR": 2,
"ERA": 2.627027027027027,
"WHIP": 1.0216216216216216,
"K9": 10.945945945945946,
"HR9": 0.29189189189189185,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 0.794387849104622,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669373",
"player_name": "Tarik Skubal",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.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": 7.0,
"delta": 4.0,
"percent_delta": 1.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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.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": 7.0,
"delta": 4.0,
"percent_delta": 1.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": "LAD",
"games": 144,
"wins": 87,
"losses": 57,
"win_pct": 0.6042,
"runs_scored": 711.0,
"runs_allowed": 556.0,
"run_differential": 155.0,
"run_differential_per_game": 1.0764,
"avg_runs_scored": 4.9375,
"avg_runs_allowed": 3.8611,
"offense_index": 1.1015,
"defense_index": 1.1609,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.3,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.2906
},
"opponent": {
"team": "CIN",
"games": 144,
"wins": 69,
"losses": 75,
"win_pct": 0.4792,
"runs_scored": 608.0,
"runs_allowed": 716.0,
"run_differential": -108.0,
"run_differential_per_game": -0.75,
"avg_runs_scored": 4.2222,
"avg_runs_allowed": 4.9722,
"offense_index": 0.9419,
"defense_index": 0.9015,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.8,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0747
},
"edges": {
"quality_edge": 0.3653,
"offense_edge": 0.1015,
"opponent_offense_edge": -0.0581,
"defense_strength": 0.1609,
"opponent_defense_weakness": 0.0985,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0218,
"run_prevention": 0.9563,
"strikeout": 1.0156
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669373",
"profile": {
"available": true,
"pitcher_id": "669373",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 444.0,
"k_percent": 30.5,
"bb_percent": 4.2,
"woba": 0.269,
"xwoba": 0.269,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 36.4,
"avg_best_speed": 75.4459,
"avg_hyper_speed": 93.6116,
"whiff_percent": 31.6,
"swing_percent": 53.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7572,
"command_and_miss": 1.1264,
"regression_edge": 0.0,
"xwoba_edge": 1.2,
"barrel_edge": -0.0222,
"hard_hit_edge": 0.2143,
"whiff_edge": 0.9429,
"bb_edge": 1.25,
"pitch_design_score": 0.1511
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669373",
"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": 92.57479172715446,
"release_spin_rate": 2164.2997542296353,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 92.57479172715446,
"release_spin_rate": 2164.2997542296353,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.5748,
"release_spin_rate": 2164.2998,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1511,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0794,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.729,
"sample_weight": 1.0,
"run_prevention_factor": 0.938,
"strikeout_factor": 1.0863,
"walk_factor": 0.9,
"homer_factor": 0.9572,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669373",
"espn_id": 42409,
"player_name": "Tarik Skubal",
"team": "LAD",
"role": "pitcher",
"espn_rank": 17,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 17,
"gp_value": 22.0,
"gp_rank": 360,
"gs_value": 22.0,
"gs_rank": 85,
"qs_value": 13.0,
"qs_rank": 29,
"era_value": 2.8564,
"era_rank": null,
"w_value": 8.0,
"w_rank": 63,
"l_value": 7.0,
"l_rank": 84,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 132.1,
"ip_rank": 70,
"h_value": 108.0,
"h_rank": 102,
"er_value": 42.0,
"er_rank": 142,
"hr_value": 12.0,
"hr_rank": 130,
"bb_value": 22.0,
"bb_rank": 258,
"k_value": 159.0,
"k_rank": 24,
"k_per_9_value": 10.8136015,
"k_per_9_rank": 9,
"whip_value": 0.9823,
"whip_rank": null,
"war_value": 3.63,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.938,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.938,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9572,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0863,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 110,
"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/20260908_CIN@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_CLE@BAL | away | Tanner Bibee | Tanner Bibee | True | 5.2 | 4.1 | -4 | 3 | 5 | 2 | 5/6 | 2/1 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.05811623246493,
"WHIP": 1.1843687374749499,
"IP": 166.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.736,
"recent_avg_IP": 5.667,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.158,
"sample_weight": 1.0,
"run_prevention_factor": 1.0134,
"strikeout_factor": 0.9783,
"walk_factor": 0.966,
"homer_factor": 1.0285,
"regression_flag": "neutral",
"k_percent": 19.3,
"bb_percent": 7.5,
"woba": 0.307,
"xwoba": 0.319,
"barrel_percent": 7.9,
"hard_hit_percent": 39.2,
"whiff_percent": 23.9
},
"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": 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": "676440",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 16.0,
"R": 17.0,
"H": 28.0,
"BB": 13.0,
"SO": 22.0,
"HR": 3.0,
"BF": 125.0,
"Pitches": 470.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.4,
"H": 5.6,
"BB": 2.6,
"SO": 4.4,
"HR": 0.6,
"BF": 25.0,
"Pitches": 94.0
},
"rates": {
"ERA": 5.0824,
"WHIP": 1.4471,
"ER_per_IP": 0.56471,
"H_per_IP": 0.98824,
"BB_per_IP": 0.45882,
"SO_per_IP": 0.77647,
"HR_per_IP": 0.10588
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 27.0,
"R": 29.0,
"H": 55.0,
"BB": 21.0,
"SO": 48.0,
"HR": 6.0,
"BF": 254.0,
"Pitches": 964.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7,
"R": 2.9,
"H": 5.5,
"BB": 2.1,
"SO": 4.8,
"HR": 0.6,
"BF": 25.4,
"Pitches": 96.4
},
"rates": {
"ERA": 4.05,
"WHIP": 1.2667,
"ER_per_IP": 0.45,
"H_per_IP": 0.91667,
"BB_per_IP": 0.35,
"SO_per_IP": 0.8,
"HR_per_IP": 0.1
}
},
"season": {
"games": 29,
"totals": {
"IP": 166.1,
"ER": 75.0,
"R": 79.0,
"H": 146.0,
"BB": 51.0,
"SO": 132.0,
"HR": 26.0,
"BF": 684.0,
"Pitches": 2621.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5862,
"R": 2.7241,
"H": 5.0345,
"BB": 1.7586,
"SO": 4.5517,
"HR": 0.8966,
"BF": 23.5862,
"Pitches": 90.3793
},
"rates": {
"ERA": 4.0581,
"WHIP": 1.1844,
"ER_per_IP": 0.4509,
"H_per_IP": 0.87776,
"BB_per_IP": 0.30661,
"SO_per_IP": 0.79359,
"HR_per_IP": 0.15631
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.892,
"predicted_H": 5.454,
"predicted_BB": 2.235,
"predicted_SO": 4.674,
"predicted_HR": 0.684,
"predicted_ERA": 4.5138,
"predicted_WHIP": 1.3334
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.892,
"final": 2.9365,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.454,
"final": 5.2669,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.235,
"final": 2.1381,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.674,
"final": 4.8084,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.684,
"final": 0.8142,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5138,
"final": 4.5138,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3334,
"final": 1.3334,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 27,
"H": 55,
"BB": 21,
"SO": 48,
"HR": 6,
"ERA": 4.050000000000001,
"WHIP": 1.2666666666666668,
"K9": 7.200000000000001,
"HR9": 0.9000000000000001,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 0.9605984346902077,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676440",
"player_name": "Tanner Bibee",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 145,
"wins": 73,
"losses": 72,
"win_pct": 0.5034,
"runs_scored": 584.0,
"runs_allowed": 600.0,
"run_differential": -16.0,
"run_differential_per_game": -0.1103,
"avg_runs_scored": 4.0276,
"avg_runs_allowed": 4.1379,
"offense_index": 0.8994,
"defense_index": 1.0822,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.0,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0107
},
"opponent": {
"team": "BAL",
"games": 145,
"wins": 70,
"losses": 75,
"win_pct": 0.4828,
"runs_scored": 647.0,
"runs_allowed": 674.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1862,
"avg_runs_scored": 4.4621,
"avg_runs_allowed": 4.6483,
"offense_index": 0.9964,
"defense_index": 0.9634,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 3.8,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0725
},
"edges": {
"quality_edge": 0.0618,
"offense_edge": -0.1006,
"opponent_offense_edge": -0.0036,
"defense_strength": 0.0822,
"opponent_defense_weakness": 0.0366,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0051,
"run_prevention": 0.9881,
"strikeout": 1.0021
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676440",
"profile": {
"available": true,
"pitcher_id": "676440",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 582.0,
"k_percent": 19.3,
"bb_percent": 7.5,
"woba": 0.307,
"xwoba": 0.319,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 39.2,
"avg_best_speed": 78.9017,
"avg_hyper_speed": 93.9677,
"whiff_percent": 23.9,
"swing_percent": 46.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1364,
"command_and_miss": -0.1436,
"regression_edge": -0.3429,
"xwoba_edge": -0.2286,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.1857,
"whiff_edge": -0.1571,
"bb_edge": 0.425,
"pitch_design_score": -0.1256
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676440",
"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": 87.63291987951403,
"release_spin_rate": 2307.0595731062376,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 87.63291987951403,
"release_spin_rate": 2307.0595731062376,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.6329,
"release_spin_rate": 2307.0596,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1256,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8974,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.158,
"sample_weight": 1.0,
"run_prevention_factor": 1.0134,
"strikeout_factor": 0.9783,
"walk_factor": 0.966,
"homer_factor": 1.0285,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676440",
"espn_id": 4345278,
"player_name": "Tanner Bibee",
"team": "CLE",
"role": "pitcher",
"espn_rank": 72,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 72,
"gp_value": 29.0,
"gp_rank": 224,
"gs_value": 29.0,
"gs_rank": 5,
"qs_value": 17.0,
"qs_rank": 8,
"era_value": 4.0581,
"era_rank": 35.0,
"w_value": 5.0,
"w_rank": 143,
"l_value": 15.0,
"l_rank": 1,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 166.1,
"ip_rank": 10,
"h_value": 146.0,
"h_rank": 24,
"er_value": 75.0,
"er_rank": 16,
"hr_value": 26.0,
"hr_rank": 11,
"bb_value": 51.0,
"bb_rank": 33,
"k_value": 132.0,
"k_rank": 52,
"k_per_9_value": 7.1422844,
"k_per_9_rank": 140,
"whip_value": 1.1843,
"whip_rank": 26.0,
"war_value": 2.04,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0134,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0134,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0285,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9783,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260908_CLE@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_CLE@BAL | home | Brandon Young | Brandon Young | True | 5.2 | 3.2 | -6 | 5 | 6 | 1 | 6/8 | 2/2 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4160583941605838,
"WHIP": 1.313868613138686,
"IP": 137.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.708,
"recent_avg_IP": 5.867,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1544,
"sample_weight": 1.0,
"run_prevention_factor": 1.0131,
"strikeout_factor": 0.9731,
"walk_factor": 0.98,
"homer_factor": 1.0115,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 8.2,
"woba": 0.317,
"xwoba": 0.32,
"barrel_percent": 6.7,
"hard_hit_percent": 39.8,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 64,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687064",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 11.0,
"R": 12.0,
"H": 29.0,
"BB": 10.0,
"SO": 21.0,
"HR": 7.0,
"BF": 124.0,
"Pitches": 459.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.4,
"H": 5.8,
"BB": 2.0,
"SO": 4.2,
"HR": 1.4,
"BF": 24.8,
"Pitches": 91.8
},
"rates": {
"ERA": 3.375,
"WHIP": 1.3295,
"ER_per_IP": 0.375,
"H_per_IP": 0.98864,
"BB_per_IP": 0.34091,
"SO_per_IP": 0.71591,
"HR_per_IP": 0.23864
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 23.0,
"R": 24.0,
"H": 57.0,
"BB": 18.0,
"SO": 48.0,
"HR": 12.0,
"BF": 247.0,
"Pitches": 925.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.4,
"H": 5.7,
"BB": 1.8,
"SO": 4.8,
"HR": 1.2,
"BF": 24.7,
"Pitches": 92.5
},
"rates": {
"ERA": 3.4693,
"WHIP": 1.257,
"ER_per_IP": 0.38547,
"H_per_IP": 0.95531,
"BB_per_IP": 0.30168,
"SO_per_IP": 0.80447,
"HR_per_IP": 0.20112
}
},
"season": {
"games": 24,
"totals": {
"IP": 137.0,
"ER": 52.0,
"R": 61.0,
"H": 132.0,
"BB": 48.0,
"SO": 110.0,
"HR": 19.0,
"BF": 583.0,
"Pitches": 2172.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1667,
"R": 2.5417,
"H": 5.5,
"BB": 2.0,
"SO": 4.5833,
"HR": 0.7917,
"BF": 24.2917,
"Pitches": 90.5
},
"rates": {
"ERA": 3.4161,
"WHIP": 1.3139,
"ER_per_IP": 0.37956,
"H_per_IP": 0.9635,
"BB_per_IP": 0.35036,
"SO_per_IP": 0.80292,
"HR_per_IP": 0.13869
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.357,
"predicted_H": 5.723,
"predicted_BB": 1.981,
"predicted_SO": 4.678,
"predicted_HR": 1.15,
"predicted_ERA": 3.603,
"predicted_WHIP": 1.3086
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.357,
"final": 3.4746,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.723,
"final": 5.8401,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.981,
"final": 1.989,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.678,
"final": 5.6598,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.15,
"final": 1.0866,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.603,
"final": 3.603,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3086,
"final": 1.3086,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 23,
"H": 57,
"BB": 18,
"SO": 48,
"HR": 12,
"ERA": 3.4692737430167595,
"WHIP": 1.2569832402234635,
"K9": 7.24022346368715,
"HR9": 1.8100558659217876,
"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-03T00:00:00"
},
"recent_form_boost": 0.895024645118513,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687064",
"player_name": "Brandon Young",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 145,
"wins": 70,
"losses": 75,
"win_pct": 0.4828,
"runs_scored": 647.0,
"runs_allowed": 674.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1862,
"avg_runs_scored": 4.4621,
"avg_runs_allowed": 4.6483,
"offense_index": 0.9964,
"defense_index": 0.9634,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 3.8,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0725
},
"opponent": {
"team": "CLE",
"games": 145,
"wins": 73,
"losses": 72,
"win_pct": 0.5034,
"runs_scored": 584.0,
"runs_allowed": 600.0,
"run_differential": -16.0,
"run_differential_per_game": -0.1103,
"avg_runs_scored": 4.0276,
"avg_runs_allowed": 4.1379,
"offense_index": 0.8994,
"defense_index": 1.0822,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.0,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0107
},
"edges": {
"quality_edge": -0.0618,
"offense_edge": -0.0036,
"opponent_offense_edge": -0.1006,
"defense_strength": -0.0366,
"opponent_defense_weakness": -0.0822,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0005,
"run_prevention": 0.9907,
"strikeout": 1.0062
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687064",
"profile": {
"available": true,
"pitcher_id": "687064",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 503.0,
"k_percent": 18.9,
"bb_percent": 8.2,
"woba": 0.317,
"xwoba": 0.32,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 39.8,
"avg_best_speed": 78.3753,
"avg_hyper_speed": 94.2035,
"whiff_percent": 23.4,
"swing_percent": 49.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1432,
"command_and_miss": -0.2293,
"regression_edge": -0.0857,
"xwoba_edge": -0.2571,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.2714,
"whiff_edge": -0.2286,
"bb_edge": 0.25,
"pitch_design_score": -0.076
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687064",
"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": 88.51860048115898,
"release_spin_rate": 2057.9819103388677,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 88.51860048115898,
"release_spin_rate": 2057.9819103388677,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.5186,
"release_spin_rate": 2057.9819,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.076,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5431,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1544,
"sample_weight": 1.0,
"run_prevention_factor": 1.0131,
"strikeout_factor": 0.9731,
"walk_factor": 0.98,
"homer_factor": 1.0115,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687064",
"espn_id": 4414339,
"player_name": "Brandon Young",
"team": "BAL",
"role": "pitcher",
"espn_rank": 64,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 64,
"gp_value": 24.0,
"gp_rank": 336,
"gs_value": 24.0,
"gs_rank": 69,
"qs_value": 12.0,
"qs_rank": 33,
"era_value": 3.416,
"era_rank": null,
"w_value": 9.0,
"w_rank": 40,
"l_value": 3.0,
"l_rank": 236,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 137.0,
"ip_rank": 62,
"h_value": 132.0,
"h_rank": 50,
"er_value": 52.0,
"er_rank": 97,
"hr_value": 19.0,
"hr_rank": 45,
"bb_value": 48.0,
"bb_rank": 44,
"k_value": 110.0,
"k_rank": 84,
"k_per_9_value": 7.2262774,
"k_per_9_rank": 36,
"whip_value": 1.3138,
"whip_rank": null,
"war_value": 2.13,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0131,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0131,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0115,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9731,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260908_CLE@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_COL@NYY | away | Gabriel Hughes | Gabriel Hughes | True | 4.1 | 5.0 | 2 | 5 | 1 | -4 | 7/4 | 2/0 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.19108280254777,
"WHIP": 1.4331210191082802,
"IP": 52.1,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 4.933,
"recent_avg_IP": 4.533,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0703,
"sample_weight": 0.648,
"run_prevention_factor": 0.994,
"strikeout_factor": 0.9633,
"walk_factor": 0.9987,
"homer_factor": 0.9318,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.2,
"bb_percent": 9.1,
"woba": 0.326,
"xwoba": 0.296,
"barrel_percent": 4.8,
"hard_hit_percent": 28.9,
"whiff_percent": 18.9
},
"espn_rank": {
"rank": 392,
"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": "687312",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 22.0,
"R": 22.0,
"H": 28.0,
"BB": 12.0,
"SO": 14.0,
"HR": 4.0,
"BF": 110.0,
"Pitches": 428.0
},
"per_game": {
"IP": 4.2,
"ER": 4.4,
"R": 4.4,
"H": 5.6,
"BB": 2.4,
"SO": 2.8,
"HR": 0.8,
"BF": 22.0,
"Pitches": 85.6
},
"rates": {
"ERA": 8.7353,
"WHIP": 1.7647,
"ER_per_IP": 0.97059,
"H_per_IP": 1.23529,
"BB_per_IP": 0.52941,
"SO_per_IP": 0.61765,
"HR_per_IP": 0.17647
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 36.0,
"R": 36.0,
"H": 52.0,
"BB": 20.0,
"SO": 41.0,
"HR": 5.0,
"BF": 220.0,
"Pitches": 845.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6,
"R": 3.6,
"H": 5.2,
"BB": 2.0,
"SO": 4.1,
"HR": 0.5,
"BF": 22.0,
"Pitches": 84.5
},
"rates": {
"ERA": 6.5676,
"WHIP": 1.4595,
"ER_per_IP": 0.72973,
"H_per_IP": 1.05405,
"BB_per_IP": 0.40541,
"SO_per_IP": 0.83108,
"HR_per_IP": 0.10135
}
},
"season": {
"games": 11,
"totals": {
"IP": 52.1,
"ER": 36.0,
"R": 36.0,
"H": 54.0,
"BB": 21.0,
"SO": 42.0,
"HR": 5.0,
"BF": 231.0,
"Pitches": 898.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2727,
"R": 3.2727,
"H": 4.9091,
"BB": 1.9091,
"SO": 3.8182,
"HR": 0.4545,
"BF": 21.0,
"Pitches": 81.6364
},
"rates": {
"ERA": 6.1911,
"WHIP": 1.4331,
"ER_per_IP": 0.6879,
"H_per_IP": 1.03185,
"BB_per_IP": 0.40127,
"SO_per_IP": 0.80255,
"HR_per_IP": 0.09554
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.45,
"predicted_H": 5.135,
"predicted_BB": 2.054,
"predicted_SO": 3.775,
"predicted_HR": 0.655,
"predicted_ERA": 6.5403,
"predicted_WHIP": 1.5145
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.45,
"final": 4.1971,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.135,
"final": 6.034,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.054,
"final": 2.028,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.775,
"final": 4.8475,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.655,
"final": 0.8213,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.5403,
"final": 6.5403,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5145,
"final": 1.5145,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 36,
"H": 52,
"BB": 20,
"SO": 41,
"HR": 5,
"ERA": 6.5675675675675675,
"WHIP": 1.4594594594594594,
"K9": 7.479729729729729,
"HR9": 0.9121621621621622,
"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-01T00:00:00"
},
"recent_form_boost": 1.2486446058613787,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.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": 5,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687312",
"player_name": "Gabriel Hughes",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 143,
"wins": 55,
"losses": 88,
"win_pct": 0.3846,
"runs_scored": 679.0,
"runs_allowed": 819.0,
"run_differential": -140.0,
"run_differential_per_game": -0.979,
"avg_runs_scored": 4.7483,
"avg_runs_allowed": 5.7273,
"offense_index": 1.0603,
"defense_index": 0.7819,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.2883
},
"opponent": {
"team": "NYY",
"games": 143,
"wins": 81,
"losses": 62,
"win_pct": 0.5664,
"runs_scored": 646.0,
"runs_allowed": 529.0,
"run_differential": 117.0,
"run_differential_per_game": 0.8182,
"avg_runs_scored": 4.5175,
"avg_runs_allowed": 3.6993,
"offense_index": 1.0088,
"defense_index": 1.2106,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.3,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1919
},
"edges": {
"quality_edge": -0.4802,
"offense_edge": 0.0603,
"opponent_offense_edge": 0.0088,
"defense_strength": -0.2181,
"opponent_defense_weakness": -0.2106,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9739,
"run_prevention": 1.0472,
"strikeout": 0.9849
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687312",
"profile": {
"available": true,
"pitcher_id": "687312",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 162.0,
"k_percent": 18.2,
"bb_percent": 9.1,
"woba": 0.326,
"xwoba": 0.296,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 4.8,
"hard_hit_percent": 28.9,
"avg_best_speed": 77.8959,
"avg_hyper_speed": 92.7027,
"whiff_percent": 18.9,
"swing_percent": 47.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2982,
"command_and_miss": -0.5443,
"regression_edge": 0.8571,
"xwoba_edge": 0.4286,
"barrel_edge": 0.5111,
"hard_hit_edge": 1.2857,
"whiff_edge": -0.8714,
"bb_edge": 0.025,
"pitch_design_score": -0.033
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687312",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.28619381193431,
"release_spin_rate": 2171.9113714304062,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.28619381193431,
"release_spin_rate": 2171.9113714304062,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2862,
"release_spin_rate": 2171.9114,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.033,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2361,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0703,
"sample_weight": 0.648,
"run_prevention_factor": 0.994,
"strikeout_factor": 0.9633,
"walk_factor": 0.9987,
"homer_factor": 0.9318,
"woba_minus_xwoba": 0.03,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "687312",
"espn_id": 4634930,
"player_name": "Gabriel Hughes",
"team": "COL",
"role": "pitcher",
"espn_rank": 392,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 392,
"gp_value": 11.0,
"gp_rank": 507,
"gs_value": 10.0,
"gs_rank": 169,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 6.191,
"era_rank": null,
"w_value": 0.0,
"w_rank": 531,
"l_value": 6.0,
"l_rank": 109,
"sv_value": 1.0,
"sv_rank": 137,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 52.1,
"ip_rank": 286,
"h_value": 54.0,
"h_rank": 217,
"er_value": 36.0,
"er_rank": 161,
"hr_value": 5.0,
"hr_rank": 316,
"bb_value": 21.0,
"bb_rank": 272,
"k_value": 42.0,
"k_rank": 334,
"k_per_9_value": 7.2229295,
"k_per_9_rank": 31,
"whip_value": 1.4331,
"whip_rank": null,
"war_value": 0.11,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9961,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 0.9961,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9992,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9558,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9762,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
}
],
"provenance": {
"prediction": "output/games/20260908_COL@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_COL@NYY | home | Cam Schlittler | Cam Schlittler | True | 6.1 | 7.0 | 2 | 1 | 1 | 0 | 2/3 | 3/0 | 7/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.0446601941747575,
"WHIP": 0.937864077669903,
"IP": 171.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.92,
"recent_avg_IP": 6.4,
"last_start_IP": 8.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6248,
"sample_weight": 1.0,
"run_prevention_factor": 0.9469,
"strikeout_factor": 1.0726,
"walk_factor": 0.94,
"homer_factor": 0.9882,
"regression_flag": "neutral",
"k_percent": 31.0,
"bb_percent": 6.2,
"woba": 0.25,
"xwoba": 0.268,
"barrel_percent": 7.9,
"hard_hit_percent": 39.8,
"whiff_percent": 28.7
},
"espn_rank": {
"rank": 2,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693645",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 4.0,
"R": 4.0,
"H": 17.0,
"BB": 11.0,
"SO": 39.0,
"HR": 2.0,
"BF": 122.0,
"Pitches": 490.0
},
"per_game": {
"IP": 6.1,
"ER": 0.8,
"R": 0.8,
"H": 3.4,
"BB": 2.2,
"SO": 7.8,
"HR": 0.4,
"BF": 24.4,
"Pitches": 98.0
},
"rates": {
"ERA": 1.125,
"WHIP": 0.875,
"ER_per_IP": 0.125,
"H_per_IP": 0.53125,
"BB_per_IP": 0.34375,
"SO_per_IP": 1.21875,
"HR_per_IP": 0.0625
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 14.0,
"R": 14.0,
"H": 36.0,
"BB": 21.0,
"SO": 79.0,
"HR": 5.0,
"BF": 235.0,
"Pitches": 962.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 3.6,
"BB": 2.1,
"SO": 7.9,
"HR": 0.5,
"BF": 23.5,
"Pitches": 96.2
},
"rates": {
"ERA": 2.1117,
"WHIP": 0.9553,
"ER_per_IP": 0.23464,
"H_per_IP": 0.60335,
"BB_per_IP": 0.35196,
"SO_per_IP": 1.32402,
"HR_per_IP": 0.0838
}
},
"season": {
"games": 29,
"totals": {
"IP": 171.2,
"ER": 39.0,
"R": 46.0,
"H": 119.0,
"BB": 42.0,
"SO": 210.0,
"HR": 15.0,
"BF": 677.0,
"Pitches": 2683.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3448,
"R": 1.5862,
"H": 4.1034,
"BB": 1.4483,
"SO": 7.2414,
"HR": 0.5172,
"BF": 23.3448,
"Pitches": 92.5172
},
"rates": {
"ERA": 2.0447,
"WHIP": 0.9379,
"ER_per_IP": 0.22718,
"H_per_IP": 0.6932,
"BB_per_IP": 0.24466,
"SO_per_IP": 1.2233,
"HR_per_IP": 0.08738
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.423,
"predicted_H": 3.987,
"predicted_BB": 2.06,
"predicted_SO": 7.474,
"predicted_HR": 0.528,
"predicted_ERA": 2.0729,
"predicted_WHIP": 0.9789
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.423,
"final": 1.2487,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.987,
"final": 3.1681,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.06,
"final": 2.4474,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.474,
"final": 6.8665,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.528,
"final": 0.3104,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.0729,
"final": 2.0729,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9789,
"final": 0.9789,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 14,
"H": 36,
"BB": 21,
"SO": 79,
"HR": 5,
"ERA": 2.111731843575419,
"WHIP": 0.9553072625698324,
"K9": 11.916201117318437,
"HR9": 0.7541899441340782,
"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-02T00:00:00"
},
"recent_form_boost": 0.7347592819900214,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.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.1,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693645",
"player_name": "Cam Schlittler",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 143,
"wins": 81,
"losses": 62,
"win_pct": 0.5664,
"runs_scored": 646.0,
"runs_allowed": 529.0,
"run_differential": 117.0,
"run_differential_per_game": 0.8182,
"avg_runs_scored": 4.5175,
"avg_runs_allowed": 3.6993,
"offense_index": 1.0088,
"defense_index": 1.2106,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.3,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1919
},
"opponent": {
"team": "COL",
"games": 143,
"wins": 55,
"losses": 88,
"win_pct": 0.3846,
"runs_scored": 679.0,
"runs_allowed": 819.0,
"run_differential": -140.0,
"run_differential_per_game": -0.979,
"avg_runs_scored": 4.7483,
"avg_runs_allowed": 5.7273,
"offense_index": 1.0603,
"defense_index": 0.7819,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.2883
},
"edges": {
"quality_edge": 0.4802,
"offense_edge": 0.0088,
"opponent_offense_edge": 0.0603,
"defense_strength": 0.2106,
"opponent_defense_weakness": 0.2181,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0231,
"run_prevention": 0.9646,
"strikeout": 1.0096
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693645",
"profile": {
"available": true,
"pitcher_id": "693645",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 31.0,
"bb_percent": 6.2,
"woba": 0.25,
"xwoba": 0.268,
"sweet_spot_percent": 32.6,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 39.8,
"avg_best_speed": 77.6451,
"avg_hyper_speed": 93.858,
"whiff_percent": 28.7,
"swing_percent": 52.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7435,
"command_and_miss": 0.9136,
"regression_edge": -0.5143,
"xwoba_edge": 1.2286,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.2714,
"whiff_edge": 0.5286,
"bb_edge": 0.75,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693645",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 95.86598593414776,
"release_spin_rate": 2500.592351861234,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 95.86598593414776,
"release_spin_rate": 2500.592351861234,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 95.866,
"release_spin_rate": 2500.5924,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.6248,
"sample_weight": 1.0,
"run_prevention_factor": 0.9469,
"strikeout_factor": 1.0726,
"walk_factor": 0.94,
"homer_factor": 0.9882,
"woba_minus_xwoba": -0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693645",
"espn_id": 5134581,
"player_name": "Cam Schlittler",
"team": "NYY",
"role": "pitcher",
"espn_rank": 2,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 2,
"gp_value": 29.0,
"gp_rank": 224,
"gs_value": 29.0,
"gs_rank": 5,
"qs_value": 17.0,
"qs_rank": 8,
"era_value": 2.0446,
"era_rank": 2.0,
"w_value": 12.0,
"w_rank": 15,
"l_value": 6.0,
"l_rank": 109,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 171.2,
"ip_rank": 6,
"h_value": 119.0,
"h_rank": 77,
"er_value": 39.0,
"er_rank": 151,
"hr_value": 15.0,
"hr_rank": 86,
"bb_value": 42.0,
"bb_rank": 71,
"k_value": 210.0,
"k_rank": 5,
"k_per_9_value": 11.009709,
"k_per_9_rank": 22,
"whip_value": 0.9378,
"whip_rank": 4.0,
"war_value": 6.4,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9469,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9469,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.94,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9882,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0726,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260908_COL@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_HOU@PHI | away | Hayden Wesneski | Hayden Wesneski | True | 5.2 | 6.0 | 1 | 2 | 3 | 1 | 5/5 | 1/0 | 5/3 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 3.1764705882352944,
"WHIP": 1.0588235294117647,
"IP": 39.2,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.6,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0443,
"sample_weight": 0.45,
"run_prevention_factor": 0.9962,
"strikeout_factor": 0.9987,
"walk_factor": 0.9973,
"homer_factor": 0.9925,
"regression_flag": "negative_pitcher_regression",
"k_percent": 20.9,
"bb_percent": 8.9,
"woba": 0.266,
"xwoba": 0.302,
"barrel_percent": 6.4,
"hard_hit_percent": 38.5,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 174,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669713",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 9.0,
"R": 9.0,
"H": 17.0,
"BB": 10.0,
"SO": 25.0,
"HR": 2.0,
"BF": 110.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 3.4,
"BB": 2.0,
"SO": 5.0,
"HR": 0.4,
"BF": 22.0,
"Pitches": 87.2
},
"rates": {
"ERA": 2.8929,
"WHIP": 0.9643,
"ER_per_IP": 0.32143,
"H_per_IP": 0.60714,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.89286,
"HR_per_IP": 0.07143
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 39.2,
"ER": 14.0,
"R": 14.0,
"H": 28.0,
"BB": 14.0,
"SO": 33.0,
"HR": 2.0,
"BF": 158.0,
"Pitches": 593.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 2.0,
"SO": 4.7143,
"HR": 0.2857,
"BF": 22.5714,
"Pitches": 84.7143
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.0588,
"ER_per_IP": 0.35294,
"H_per_IP": 0.70588,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.83193,
"HR_per_IP": 0.05042
}
},
"season": {
"games": 7,
"totals": {
"IP": 39.2,
"ER": 14.0,
"R": 14.0,
"H": 28.0,
"BB": 14.0,
"SO": 33.0,
"HR": 2.0,
"BF": 158.0,
"Pitches": 593.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 2.0,
"SO": 4.7143,
"HR": 0.2857,
"BF": 22.5714,
"Pitches": 84.7143
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.0588,
"ER_per_IP": 0.35294,
"H_per_IP": 0.70588,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.83193,
"HR_per_IP": 0.05042
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.268,
"predicted_H": 4.382,
"predicted_BB": 2.056,
"predicted_SO": 5.124,
"predicted_HR": 0.566,
"predicted_ERA": 3.6017,
"predicted_WHIP": 1.1361
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.268,
"final": 2.127,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.382,
"final": 4.7071,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.056,
"final": 1.5005,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.124,
"final": 4.0067,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.566,
"final": 0.7943,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6017,
"final": 3.6017,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1361,
"final": 1.1361,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 14,
"H": 28,
"BB": 14,
"SO": 33,
"HR": 2,
"ERA": 3.1764705882352944,
"WHIP": 1.0588235294117647,
"K9": 7.487394957983193,
"HR9": 0.45378151260504207,
"games_pitched": 7,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.8571302974353057,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669713",
"player_name": "Hayden Wesneski",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 144,
"wins": 73,
"losses": 71,
"win_pct": 0.5069,
"runs_scored": 647.0,
"runs_allowed": 685.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2639,
"avg_runs_scored": 4.4931,
"avg_runs_allowed": 4.7569,
"offense_index": 1.0033,
"defense_index": 0.9414,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.8,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0085
},
"opponent": {
"team": "PHI",
"games": 144,
"wins": 81,
"losses": 63,
"win_pct": 0.5625,
"runs_scored": 642.0,
"runs_allowed": 607.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2431,
"avg_runs_scored": 4.4583,
"avg_runs_allowed": 4.2153,
"offense_index": 0.9956,
"defense_index": 1.0624,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.2,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.153
},
"edges": {
"quality_edge": -0.1445,
"offense_edge": 0.0033,
"opponent_offense_edge": -0.0044,
"defense_strength": -0.0586,
"opponent_defense_weakness": -0.0624,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9926,
"run_prevention": 1.0124,
"strikeout": 0.996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669713",
"profile": {
"available": true,
"pitcher_id": "669713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 94.0,
"k_percent": 20.9,
"bb_percent": 8.9,
"woba": 0.266,
"xwoba": 0.302,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 38.5,
"avg_best_speed": 75.4307,
"avg_hyper_speed": 93.9611,
"whiff_percent": 25.6,
"swing_percent": 48.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3854,
"command_and_miss": -0.0257,
"regression_edge": -1.0286,
"xwoba_edge": 0.2571,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.0857,
"whiff_edge": 0.0857,
"bb_edge": 0.075,
"pitch_design_score": -0.0966
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669713",
"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": 88.15057794740576,
"release_spin_rate": 2328.6168589392373,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 88.15057794740576,
"release_spin_rate": 2328.6168589392373,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.1506,
"release_spin_rate": 2328.6169,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0966,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6903,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0443,
"sample_weight": 0.45,
"run_prevention_factor": 0.9962,
"strikeout_factor": 0.9987,
"walk_factor": 0.9973,
"homer_factor": 0.9925,
"woba_minus_xwoba": -0.036,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "669713",
"espn_id": 42996,
"player_name": "Hayden Wesneski",
"team": "HOU",
"role": "pitcher",
"espn_rank": 174,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 174,
"gp_value": 7.0,
"gp_rank": 582,
"gs_value": 7.0,
"gs_rank": 199,
"qs_value": 3.0,
"qs_rank": 138,
"era_value": 3.1764,
"era_rank": null,
"w_value": 4.0,
"w_rank": 186,
"l_value": 1.0,
"l_rank": 426,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 39.2,
"ip_rank": 364,
"h_value": 28.0,
"h_rank": 429,
"er_value": 14.0,
"er_rank": 439,
"hr_value": 2.0,
"hr_rank": 515,
"bb_value": 14.0,
"bb_rank": 395,
"k_value": 33.0,
"k_rank": 393,
"k_per_9_value": 7.4873953,
"k_per_9_rank": 29,
"whip_value": 1.0588,
"whip_rank": null,
"war_value": 1.05,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9983,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9983,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9988,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9966,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9994,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260908_HOU@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"
}
} |
| 20260908 | 20260908_HOU@PHI | home | Andrew Painter | Andrew Painter | True | 5.1 | 5.0 | -1 | 2 | 5 | 3 | 3/10 | 2/2 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.55379746835443,
"WHIP": 1.3670886075949367,
"IP": 105.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.018,
"recent_avg_IP": 6.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0231,
"sample_weight": 1.0,
"run_prevention_factor": 1.002,
"strikeout_factor": 0.9851,
"walk_factor": 0.978,
"homer_factor": 1.0035,
"regression_flag": "neutral",
"k_percent": 20.0,
"bb_percent": 8.1,
"woba": 0.334,
"xwoba": 0.32,
"barrel_percent": 7.7,
"hard_hit_percent": 35.3,
"whiff_percent": 24.4
},
"espn_rank": {
"rank": 213,
"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": "691725",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 11.0,
"R": 11.0,
"H": 17.0,
"BB": 9.0,
"SO": 28.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 477.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.2,
"H": 3.4,
"BB": 1.8,
"SO": 5.6,
"HR": 0.4,
"BF": 23.4,
"Pitches": 95.4
},
"rates": {
"ERA": 3.2637,
"WHIP": 0.8571,
"ER_per_IP": 0.36264,
"H_per_IP": 0.56044,
"BB_per_IP": 0.2967,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.06593
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 31.0,
"R": 31.0,
"H": 43.0,
"BB": 20.0,
"SO": 48.0,
"HR": 8.0,
"BF": 220.0,
"Pitches": 849.0
},
"per_game": {
"IP": 5.1,
"ER": 3.1,
"R": 3.1,
"H": 4.3,
"BB": 2.0,
"SO": 4.8,
"HR": 0.8,
"BF": 22.0,
"Pitches": 84.9
},
"rates": {
"ERA": 5.3654,
"WHIP": 1.2115,
"ER_per_IP": 0.59615,
"H_per_IP": 0.82692,
"BB_per_IP": 0.38462,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.15385
}
},
"season": {
"games": 21,
"totals": {
"IP": 105.1,
"ER": 65.0,
"R": 65.0,
"H": 107.0,
"BB": 37.0,
"SO": 91.0,
"HR": 17.0,
"BF": 456.0,
"Pitches": 1763.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0952,
"R": 3.0952,
"H": 5.0952,
"BB": 1.7619,
"SO": 4.3333,
"HR": 0.8095,
"BF": 21.7143,
"Pitches": 83.9524
},
"rates": {
"ERA": 5.5538,
"WHIP": 1.3671,
"ER_per_IP": 0.61709,
"H_per_IP": 1.01582,
"BB_per_IP": 0.35127,
"SO_per_IP": 0.86392,
"HR_per_IP": 0.16139
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.772,
"predicted_H": 4.406,
"predicted_BB": 1.926,
"predicted_SO": 5.121,
"predicted_HR": 0.68,
"predicted_ERA": 4.4655,
"predicted_WHIP": 1.1335
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.772,
"final": 2.4391,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.406,
"final": 3.7997,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.926,
"final": 1.9579,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.121,
"final": 4.6376,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.68,
"final": 0.3868,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4655,
"final": 4.4655,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1335,
"final": 1.1335,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 31,
"H": 43,
"BB": 20,
"SO": 48,
"HR": 8,
"ERA": 5.365384615384616,
"WHIP": 1.2115384615384617,
"K9": 8.307692307692308,
"HR9": 1.3846153846153848,
"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-02T00:00:00"
},
"recent_form_boost": 1.1072009987927718,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691725",
"player_name": "Andrew Painter",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"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": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"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": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 144,
"wins": 81,
"losses": 63,
"win_pct": 0.5625,
"runs_scored": 642.0,
"runs_allowed": 607.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2431,
"avg_runs_scored": 4.4583,
"avg_runs_allowed": 4.2153,
"offense_index": 0.9956,
"defense_index": 1.0624,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.2,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.153
},
"opponent": {
"team": "HOU",
"games": 144,
"wins": 73,
"losses": 71,
"win_pct": 0.5069,
"runs_scored": 647.0,
"runs_allowed": 685.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2639,
"avg_runs_scored": 4.4931,
"avg_runs_allowed": 4.7569,
"offense_index": 1.0033,
"defense_index": 0.9414,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.8,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0085
},
"edges": {
"quality_edge": 0.1445,
"offense_edge": -0.0044,
"opponent_offense_edge": 0.0033,
"defense_strength": 0.0624,
"opponent_defense_weakness": 0.0586,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0075,
"run_prevention": 0.9871,
"strikeout": 1.0041
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691725",
"profile": {
"available": true,
"pitcher_id": "691725",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 380.0,
"k_percent": 20.0,
"bb_percent": 8.1,
"woba": 0.334,
"xwoba": 0.32,
"sweet_spot_percent": 28.8,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 35.3,
"avg_best_speed": 75.6462,
"avg_hyper_speed": 93.6507,
"whiff_percent": 24.4,
"swing_percent": 49.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0673,
"command_and_miss": -0.1036,
"regression_edge": 0.4,
"xwoba_edge": -0.2571,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.3714,
"whiff_edge": -0.0857,
"bb_edge": 0.275,
"pitch_design_score": 0.0182
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691725",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.20186596189707,
"release_spin_rate": 2299.9389803815907,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.20186596189707,
"release_spin_rate": 2299.9389803815907,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2019,
"release_spin_rate": 2299.939,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0182,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1302,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0231,
"sample_weight": 1.0,
"run_prevention_factor": 1.002,
"strikeout_factor": 0.9851,
"walk_factor": 0.978,
"homer_factor": 1.0035,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "691725",
"espn_id": 4872683,
"player_name": "Andrew Painter",
"team": "PHI",
"role": "pitcher",
"espn_rank": 213,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 213,
"gp_value": 21.0,
"gp_rank": 375,
"gs_value": 19.0,
"gs_rank": 101,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 5.5537,
"era_rank": null,
"w_value": 3.0,
"w_rank": 242,
"l_value": 8.0,
"l_rank": 56,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 105.1,
"ip_rank": 116,
"h_value": 107.0,
"h_rank": 105,
"er_value": 65.0,
"er_rank": 49,
"hr_value": 17.0,
"hr_rank": 67,
"bb_value": 37.0,
"bb_rank": 105,
"k_value": 91.0,
"k_rank": 121,
"k_per_9_value": 7.775316,
"k_per_9_rank": 28,
"whip_value": 1.367,
"whip_rank": null,
"war_value": 0.77,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.002,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.002,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0035,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9851,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was +7."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260908_HOU@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"
}
} |
| 20260908 | 20260908_LAA@BOS | away | Reid Detmers | Reid Detmers | True | 6.1 | 6.0 | -1 | 2 | 0 | -2 | 5/1 | 2/1 | 8/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4444444444444446,
"WHIP": 1.0617283950617284,
"IP": 162.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.786,
"recent_avg_IP": 6.6,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4418,
"sample_weight": 1.0,
"run_prevention_factor": 0.9624,
"strikeout_factor": 1.0571,
"walk_factor": 0.952,
"homer_factor": 0.9799,
"regression_flag": "neutral",
"k_percent": 28.0,
"bb_percent": 6.8,
"woba": 0.273,
"xwoba": 0.28,
"barrel_percent": 7.4,
"hard_hit_percent": 38.1,
"whiff_percent": 29.0
},
"espn_rank": {
"rank": 22,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "672282",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 3.0,
"R": 3.0,
"H": 25.0,
"BB": 5.0,
"SO": 32.0,
"HR": 0.0,
"BF": 121.0,
"Pitches": 454.0
},
"per_game": {
"IP": 6.2,
"ER": 0.6,
"R": 0.6,
"H": 5.0,
"BB": 1.0,
"SO": 6.4,
"HR": 0.0,
"BF": 24.2,
"Pitches": 90.8
},
"rates": {
"ERA": 0.8182,
"WHIP": 0.9091,
"ER_per_IP": 0.09091,
"H_per_IP": 0.75758,
"BB_per_IP": 0.15152,
"SO_per_IP": 0.9697,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.1,
"ER": 14.0,
"R": 14.0,
"H": 46.0,
"BB": 10.0,
"SO": 65.0,
"HR": 8.0,
"BF": 219.0,
"Pitches": 872.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.4,
"H": 4.6,
"BB": 1.0,
"SO": 6.5,
"HR": 0.8,
"BF": 21.9,
"Pitches": 87.2
},
"rates": {
"ERA": 2.1977,
"WHIP": 0.9767,
"ER_per_IP": 0.24419,
"H_per_IP": 0.80233,
"BB_per_IP": 0.17442,
"SO_per_IP": 1.13372,
"HR_per_IP": 0.13953
}
},
"season": {
"games": 28,
"totals": {
"IP": 162.0,
"ER": 62.0,
"R": 65.0,
"H": 128.0,
"BB": 44.0,
"SO": 182.0,
"HR": 17.0,
"BF": 651.0,
"Pitches": 2584.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2143,
"R": 2.3214,
"H": 4.5714,
"BB": 1.5714,
"SO": 6.5,
"HR": 0.6071,
"BF": 23.25,
"Pitches": 92.2857
},
"rates": {
"ERA": 3.4444,
"WHIP": 1.0617,
"ER_per_IP": 0.38272,
"H_per_IP": 0.79012,
"BB_per_IP": 0.2716,
"SO_per_IP": 1.12346,
"HR_per_IP": 0.10494
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.525,
"predicted_H": 4.975,
"predicted_BB": 1.304,
"predicted_SO": 6.396,
"predicted_HR": 0.501,
"predicted_ERA": 2.2313,
"predicted_WHIP": 1.0211
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.0,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.525,
"final": 1.7217,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.975,
"final": 4.9854,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.304,
"final": 1.5922,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.396,
"final": 6.6461,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.501,
"final": 0.2936,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2313,
"final": 2.2313,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0211,
"final": 1.0211,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.1,
"ER": 14,
"H": 46,
"BB": 10,
"SO": 65,
"HR": 8,
"ERA": 2.1976744186046515,
"WHIP": 0.9767441860465117,
"K9": 10.203488372093025,
"HR9": 1.255813953488372,
"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-02T00:00:00"
},
"recent_form_boost": 0.744963744767727,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "672282",
"player_name": "Reid Detmers",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 144,
"wins": 54,
"losses": 90,
"win_pct": 0.375,
"runs_scored": 579.0,
"runs_allowed": 659.0,
"run_differential": -80.0,
"run_differential_per_game": -0.5556,
"avg_runs_scored": 4.0208,
"avg_runs_allowed": 4.5764,
"offense_index": 0.8979,
"defense_index": 0.9786,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.6,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.2795
},
"opponent": {
"team": "BOS",
"games": 145,
"wins": 80,
"losses": 65,
"win_pct": 0.5517,
"runs_scored": 647.0,
"runs_allowed": 558.0,
"run_differential": 89.0,
"run_differential_per_game": 0.6138,
"avg_runs_scored": 4.4621,
"avg_runs_allowed": 3.8483,
"offense_index": 0.9964,
"defense_index": 1.1637,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.9,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.1893
},
"edges": {
"quality_edge": -0.4688,
"offense_edge": -0.1021,
"opponent_offense_edge": -0.0036,
"defense_strength": -0.0214,
"opponent_defense_weakness": -0.1637,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9808,
"run_prevention": 1.025,
"strikeout": 0.9862
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "672282",
"profile": {
"available": true,
"pitcher_id": "672282",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 576.0,
"k_percent": 28.0,
"bb_percent": 6.8,
"woba": 0.273,
"xwoba": 0.28,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 38.1,
"avg_best_speed": 80.0645,
"avg_hyper_speed": 94.288,
"whiff_percent": 29.0,
"swing_percent": 49.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5117,
"command_and_miss": 0.7057,
"regression_edge": -0.2,
"xwoba_edge": 0.8857,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.0286,
"whiff_edge": 0.5714,
"bb_edge": 0.6,
"pitch_design_score": -0.1029
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "672282",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.03966004092277,
"release_spin_rate": 2234.6453988776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.03966004092277,
"release_spin_rate": 2234.6453988776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.0397,
"release_spin_rate": 2234.6454,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1029,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7347,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4418,
"sample_weight": 1.0,
"run_prevention_factor": 0.9624,
"strikeout_factor": 1.0571,
"walk_factor": 0.952,
"homer_factor": 0.9799,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "672282",
"espn_id": 4326697,
"player_name": "Reid Detmers",
"team": "LAA",
"role": "pitcher",
"espn_rank": 22,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 22,
"gp_value": 28.0,
"gp_rank": 248,
"gs_value": 28.0,
"gs_rank": 17,
"qs_value": 13.0,
"qs_rank": 29,
"era_value": 3.4444,
"era_rank": 21.0,
"w_value": 4.0,
"w_rank": 186,
"l_value": 8.0,
"l_rank": 56,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 162.0,
"ip_rank": 16,
"h_value": 128.0,
"h_rank": 61,
"er_value": 62.0,
"er_rank": 58,
"hr_value": 17.0,
"hr_rank": 67,
"bb_value": 44.0,
"bb_rank": 63,
"k_value": 182.0,
"k_rank": 10,
"k_per_9_value": 10.111111,
"k_per_9_rank": 16,
"whip_value": 1.0617,
"whip_rank": 9.0,
"war_value": 3.45,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9624,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9624,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9799,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0571,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 8,
"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."
}
],
"provenance": {
"prediction": "output/games/20260908_LAA@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"
}
} |
| 20260908 | 20260908_LAA@BOS | home | Patrick Sandoval | Patrick Sandoval | True | 5.0 | 6.0 | 3 | 3 | 4 | 1 | 3/10 | 4/2 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.408163265306122,
"WHIP": 1.7346938775510203,
"IP": 49.0,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 4.9,
"recent_avg_IP": 5.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1961,
"sample_weight": 0.636,
"run_prevention_factor": 1.0167,
"strikeout_factor": 0.9996,
"walk_factor": 1.0229,
"homer_factor": 1.0086,
"regression_flag": "neutral",
"k_percent": 22.0,
"bb_percent": 11.0,
"woba": 0.366,
"xwoba": 0.35,
"barrel_percent": 7.3,
"hard_hit_percent": 33.8,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 575,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663776",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 15.0,
"R": 18.0,
"H": 30.0,
"BB": 15.0,
"SO": 25.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.6,
"H": 6.0,
"BB": 3.0,
"SO": 5.0,
"HR": 0.6,
"BF": 23.6,
"Pitches": 88.4
},
"rates": {
"ERA": 5.4,
"WHIP": 1.8,
"ER_per_IP": 0.6,
"H_per_IP": 1.2,
"BB_per_IP": 0.6,
"SO_per_IP": 1.0,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 24.0,
"R": 28.0,
"H": 60.0,
"BB": 25.0,
"SO": 50.0,
"HR": 6.0,
"BF": 227.0,
"Pitches": 848.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.8,
"H": 6.0,
"BB": 2.5,
"SO": 5.0,
"HR": 0.6,
"BF": 22.7,
"Pitches": 84.8
},
"rates": {
"ERA": 4.4082,
"WHIP": 1.7347,
"ER_per_IP": 0.4898,
"H_per_IP": 1.22449,
"BB_per_IP": 0.5102,
"SO_per_IP": 1.02041,
"HR_per_IP": 0.12245
}
},
"season": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 24.0,
"R": 28.0,
"H": 60.0,
"BB": 25.0,
"SO": 50.0,
"HR": 6.0,
"BF": 227.0,
"Pitches": 848.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.8,
"H": 6.0,
"BB": 2.5,
"SO": 5.0,
"HR": 0.6,
"BF": 22.7,
"Pitches": 84.8
},
"rates": {
"ERA": 4.4082,
"WHIP": 1.7347,
"ER_per_IP": 0.4898,
"H_per_IP": 1.22449,
"BB_per_IP": 0.5102,
"SO_per_IP": 1.02041,
"HR_per_IP": 0.12245
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.673,
"predicted_H": 5.658,
"predicted_BB": 2.489,
"predicted_SO": 4.93,
"predicted_HR": 0.648,
"predicted_ERA": 4.8107,
"predicted_WHIP": 1.6293
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.673,
"final": 2.8335,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.658,
"final": 4.3534,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.489,
"final": 3.2306,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.93,
"final": 4.4735,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.648,
"final": 0.3299,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8107,
"final": 4.8107,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6293,
"final": 1.6293,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.0,
"ER": 24,
"H": 60,
"BB": 25,
"SO": 50,
"HR": 6,
"ERA": 4.408163265306122,
"WHIP": 1.7346938775510201,
"K9": 9.183673469387754,
"HR9": 1.1020408163265305,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 1.0125924823092551,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663776",
"player_name": "Patrick Sandoval",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "BOS",
"games": 145,
"wins": 80,
"losses": 65,
"win_pct": 0.5517,
"runs_scored": 647.0,
"runs_allowed": 558.0,
"run_differential": 89.0,
"run_differential_per_game": 0.6138,
"avg_runs_scored": 4.4621,
"avg_runs_allowed": 3.8483,
"offense_index": 0.9964,
"defense_index": 1.1637,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.9,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.1893
},
"opponent": {
"team": "LAA",
"games": 144,
"wins": 54,
"losses": 90,
"win_pct": 0.375,
"runs_scored": 579.0,
"runs_allowed": 659.0,
"run_differential": -80.0,
"run_differential_per_game": -0.5556,
"avg_runs_scored": 4.0208,
"avg_runs_allowed": 4.5764,
"offense_index": 0.8979,
"defense_index": 0.9786,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.6,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.2795
},
"edges": {
"quality_edge": 0.4688,
"offense_edge": -0.0036,
"opponent_offense_edge": -0.1021,
"defense_strength": 0.1637,
"opponent_defense_weakness": 0.0214,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0277,
"run_prevention": 0.9439,
"strikeout": 1.0222
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663776",
"profile": {
"available": true,
"pitcher_id": "663776",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 159.0,
"k_percent": 22.0,
"bb_percent": 11.0,
"woba": 0.366,
"xwoba": 0.35,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 33.8,
"avg_best_speed": 75.3441,
"avg_hyper_speed": 93.334,
"whiff_percent": 24.9,
"swing_percent": 45.9
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5756,
"command_and_miss": -0.095,
"regression_edge": 0.4571,
"xwoba_edge": -1.1143,
"barrel_edge": -0.0444,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.0143,
"bb_edge": -0.45,
"pitch_design_score": -0.0884
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663776",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.29745412076173,
"release_spin_rate": 2185.3833510165955,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.29745412076173,
"release_spin_rate": 2185.3833510165955,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.2975,
"release_spin_rate": 2185.3834,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0884,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6316,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1961,
"sample_weight": 0.636,
"run_prevention_factor": 1.0167,
"strikeout_factor": 0.9996,
"walk_factor": 1.0229,
"homer_factor": 1.0086,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663776",
"espn_id": 40975,
"player_name": "Patrick Sandoval",
"team": "BOS",
"role": "pitcher",
"espn_rank": 575,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 575,
"gp_value": 10.0,
"gp_rank": 522,
"gs_value": 10.0,
"gs_rank": 169,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 4.4081,
"era_rank": null,
"w_value": 1.0,
"w_rank": 408,
"l_value": 4.0,
"l_rank": 180,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 49.0,
"ip_rank": 304,
"h_value": 60.0,
"h_rank": 194,
"er_value": 24.0,
"er_rank": 252,
"hr_value": 6.0,
"hr_rank": 268,
"bb_value": 25.0,
"bb_rank": 216,
"k_value": 50.0,
"k_rank": 288,
"k_per_9_value": 9.183673,
"k_per_9_rank": 25,
"whip_value": 1.7346,
"whip_rank": null,
"war_value": -0.09,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0106,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0106,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0146,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0055,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9997,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"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 7",
"detail": "Actual minus predicted hits was +7."
}
],
"provenance": {
"prediction": "output/games/20260908_LAA@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"
}
} |
| 20260908 | 20260908_MIN@DET | away | Dean Kremer | Dean Kremer | True | 4.2 | 5.0 | 1 | 6 | 2 | -4 | 8/5 | 4/1 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.805,
"WHIP": 1.305,
"IP": 66.2,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 5.128,
"recent_avg_IP": 5.133,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1093,
"sample_weight": 0.868,
"run_prevention_factor": 1.0093,
"strikeout_factor": 1.0243,
"walk_factor": 0.9896,
"homer_factor": 1.0357,
"regression_flag": "neutral",
"k_percent": 23.6,
"bb_percent": 8.6,
"woba": 0.347,
"xwoba": 0.329,
"barrel_percent": 8.9,
"hard_hit_percent": 36.8,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 759,
"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": "665152",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 16.0,
"R": 17.0,
"H": 22.0,
"BB": 11.0,
"SO": 26.0,
"HR": 3.0,
"BF": 108.0,
"Pitches": 448.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.4,
"H": 4.4,
"BB": 2.2,
"SO": 5.2,
"HR": 0.6,
"BF": 21.6,
"Pitches": 89.6
},
"rates": {
"ERA": 5.6104,
"WHIP": 1.2857,
"ER_per_IP": 0.62338,
"H_per_IP": 0.85714,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.01299,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 37.0,
"R": 38.0,
"H": 51.0,
"BB": 21.0,
"SO": 46.0,
"HR": 10.0,
"BF": 215.0,
"Pitches": 879.0
},
"per_game": {
"IP": 5.0,
"ER": 3.7,
"R": 3.8,
"H": 5.1,
"BB": 2.1,
"SO": 4.6,
"HR": 1.0,
"BF": 21.5,
"Pitches": 87.9
},
"rates": {
"ERA": 6.7047,
"WHIP": 1.4497,
"ER_per_IP": 0.74497,
"H_per_IP": 1.02685,
"BB_per_IP": 0.42282,
"SO_per_IP": 0.92617,
"HR_per_IP": 0.20134
}
},
"season": {
"games": 13,
"totals": {
"IP": 66.2,
"ER": 43.0,
"R": 46.0,
"H": 63.0,
"BB": 24.0,
"SO": 66.0,
"HR": 15.0,
"BF": 280.0,
"Pitches": 1133.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3077,
"R": 3.5385,
"H": 4.8462,
"BB": 1.8462,
"SO": 5.0769,
"HR": 1.1538,
"BF": 21.5385,
"Pitches": 87.1538
},
"rates": {
"ERA": 5.805,
"WHIP": 1.305,
"ER_per_IP": 0.645,
"H_per_IP": 0.945,
"BB_per_IP": 0.36,
"SO_per_IP": 0.99,
"HR_per_IP": 0.225
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.115,
"predicted_H": 4.725,
"predicted_BB": 2.007,
"predicted_SO": 4.838,
"predicted_HR": 0.81,
"predicted_ERA": 5.6066,
"predicted_WHIP": 1.3464
}
},
"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": 6.0,
"form": 3.115,
"final": 4.4634,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.725,
"final": 6.2556,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.007,
"final": 2.9385,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.838,
"final": 4.4463,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.81,
"final": 1.3662,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6066,
"final": 5.6066,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3464,
"final": 1.3464,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 37,
"H": 51,
"BB": 21,
"SO": 46,
"HR": 10,
"ERA": 6.704697986577181,
"WHIP": 1.4496644295302015,
"K9": 8.335570469798657,
"HR9": 1.8120805369127517,
"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-02T00:00:00"
},
"recent_form_boost": 1.2638269022517288,
"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": 8.0,
"predicted_BB": 4.0,
"predicted_SO": 4.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 6,
"predicted_H": 8,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 2
}
}
],
"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": 4.0,
"predicted_ER": 6.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 6.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 6.0,
"predicted_H": 8.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.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": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 144,
"wins": 68,
"losses": 76,
"win_pct": 0.4722,
"runs_scored": 670.0,
"runs_allowed": 719.0,
"run_differential": -49.0,
"run_differential_per_game": -0.3403,
"avg_runs_scored": 4.6528,
"avg_runs_allowed": 4.9931,
"offense_index": 1.039,
"defense_index": 0.8969,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.8,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.1004
},
"opponent": {
"team": "DET",
"games": 144,
"wins": 66,
"losses": 78,
"win_pct": 0.4583,
"runs_scored": 632.0,
"runs_allowed": 581.0,
"run_differential": 51.0,
"run_differential_per_game": 0.3542,
"avg_runs_scored": 4.3889,
"avg_runs_allowed": 4.0347,
"offense_index": 0.98,
"defense_index": 1.1099,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.7,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.0269
},
"edges": {
"quality_edge": -0.0735,
"offense_edge": 0.039,
"opponent_offense_edge": -0.02,
"defense_strength": -0.1031,
"opponent_defense_weakness": -0.1099,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9948,
"run_prevention": 1.0108,
"strikeout": 0.9994
},
"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": 217.0,
"k_percent": 23.6,
"bb_percent": 8.6,
"woba": 0.347,
"xwoba": 0.329,
"sweet_spot_percent": 38.4,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 36.8,
"avg_best_speed": 76.7362,
"avg_hyper_speed": 93.808,
"whiff_percent": 28.3,
"swing_percent": 45.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4288,
"command_and_miss": 0.2979,
"regression_edge": 0.5143,
"xwoba_edge": -0.5143,
"barrel_edge": -0.4,
"hard_hit_edge": 0.1571,
"whiff_edge": 0.4714,
"bb_edge": 0.15,
"pitch_design_score": -0.1836
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "665152",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 86.5972766860832,
"release_spin_rate": 2072.2900211030874,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 86.5972766860832,
"release_spin_rate": 2072.2900211030874,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.5973,
"release_spin_rate": 2072.29,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1836,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3116,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1093,
"sample_weight": 0.868,
"run_prevention_factor": 1.0093,
"strikeout_factor": 1.0243,
"walk_factor": 0.9896,
"homer_factor": 1.0357,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "665152",
"espn_id": 38295,
"player_name": "Dean Kremer",
"team": "MIN",
"role": "pitcher",
"espn_rank": 759,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 759,
"gp_value": 13.0,
"gp_rank": 481,
"gs_value": 13.0,
"gs_rank": 152,
"qs_value": 3.0,
"qs_rank": 138,
"era_value": 5.805,
"era_rank": null,
"w_value": 2.0,
"w_rank": 311,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 66.2,
"ip_rank": 190,
"h_value": 63.0,
"h_rank": 182,
"er_value": 43.0,
"er_rank": 138,
"hr_value": 15.0,
"hr_rank": 86,
"bb_value": 24.0,
"bb_rank": 225,
"k_value": 66.0,
"k_rank": 195,
"k_per_9_value": 8.91,
"k_per_9_rank": 27,
"whip_value": 1.305,
"whip_rank": null,
"war_value": -0.44,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0081,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0081,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.991,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.031,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0211,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 8,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 26,
"Pitches": 111,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260908_MIN@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"
}
} |
| 20260908 | 20260908_MIN@DET | home | Drew Anderson | Drew Anderson | True | 5.0 | 5.1 | 1 | 4 | 3 | -1 | 6/4 | 2/3 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7309090909090905,
"WHIP": 1.298181818181818,
"IP": 91.2,
"games_started": null,
"games_pitched": 46,
"role_avg_IP": 4.417,
"recent_avg_IP": 4.867,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1317,
"sample_weight": 1.0,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0354,
"walk_factor": 1.008,
"homer_factor": 1.0189,
"regression_flag": "neutral",
"k_percent": 25.6,
"bb_percent": 9.6,
"woba": 0.319,
"xwoba": 0.305,
"barrel_percent": 8.1,
"hard_hit_percent": 39.0,
"whiff_percent": 27.6
},
"espn_rank": {
"rank": 182,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 91.2,
"season_ERA": 3.731,
"season_WHIP": 1.298,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.45,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7868,
"prior_weight": 0.2132
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "623454",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 46,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 8.0,
"R": 9.0,
"H": 20.0,
"BB": 12.0,
"SO": 23.0,
"HR": 4.0,
"BF": 104.0,
"Pitches": 398.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 1.8,
"H": 4.0,
"BB": 2.4,
"SO": 4.6,
"HR": 0.8,
"BF": 20.8,
"Pitches": 79.6
},
"rates": {
"ERA": 2.9589,
"WHIP": 1.3151,
"ER_per_IP": 0.32877,
"H_per_IP": 0.82192,
"BB_per_IP": 0.49315,
"SO_per_IP": 0.94521,
"HR_per_IP": 0.16438
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 33.1,
"ER": 11.0,
"R": 12.0,
"H": 28.0,
"BB": 14.0,
"SO": 28.0,
"HR": 4.0,
"BF": 139.0,
"Pitches": 532.0
},
"per_game": {
"IP": 3.1,
"ER": 1.1,
"R": 1.2,
"H": 2.8,
"BB": 1.4,
"SO": 2.8,
"HR": 0.4,
"BF": 13.9,
"Pitches": 53.2
},
"rates": {
"ERA": 2.97,
"WHIP": 1.26,
"ER_per_IP": 0.33,
"H_per_IP": 0.84,
"BB_per_IP": 0.42,
"SO_per_IP": 0.84,
"HR_per_IP": 0.12
}
},
"season": {
"games": 46,
"totals": {
"IP": 91.2,
"ER": 38.0,
"R": 42.0,
"H": 82.0,
"BB": 37.0,
"SO": 101.0,
"HR": 13.0,
"BF": 393.0,
"Pitches": 1525.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8261,
"R": 0.913,
"H": 1.7826,
"BB": 0.8043,
"SO": 2.1957,
"HR": 0.2826,
"BF": 8.5435,
"Pitches": 33.1522
},
"rates": {
"ERA": 3.7309,
"WHIP": 1.2982,
"ER_per_IP": 0.41455,
"H_per_IP": 0.89455,
"BB_per_IP": 0.40364,
"SO_per_IP": 1.10182,
"HR_per_IP": 0.14182
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.543,
"predicted_H": 3.542,
"predicted_BB": 1.762,
"predicted_SO": 3.824,
"predicted_HR": 0.589,
"predicted_ERA": 3.412,
"predicted_WHIP": 1.3037
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4401,
"form_weight": 0.5599,
"form_reliability": 0.7868,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.45,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7868,
"prior_weight": 0.2132
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.543,
"final": 2.6243,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.542,
"final": 4.6237,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.762,
"final": 1.8667,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.824,
"final": 3.9015,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.589,
"final": 0.7699,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.412,
"final": 3.412,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3037,
"final": 1.3037,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 33.1,
"ER": 11,
"H": 28,
"BB": 14,
"SO": 28,
"HR": 4,
"ERA": 2.9699999999999998,
"WHIP": 1.26,
"K9": 7.56,
"HR9": 1.0799999999999998,
"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-02T00:00:00"
},
"recent_form_boost": 0.8389317680235409,
"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": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.45,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7868,
"prior_weight": 0.2132
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "623454",
"player_name": "Drew Anderson",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 144,
"wins": 66,
"losses": 78,
"win_pct": 0.4583,
"runs_scored": 632.0,
"runs_allowed": 581.0,
"run_differential": 51.0,
"run_differential_per_game": 0.3542,
"avg_runs_scored": 4.3889,
"avg_runs_allowed": 4.0347,
"offense_index": 0.98,
"defense_index": 1.1099,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.7,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.0269
},
"opponent": {
"team": "MIN",
"games": 144,
"wins": 68,
"losses": 76,
"win_pct": 0.4722,
"runs_scored": 670.0,
"runs_allowed": 719.0,
"run_differential": -49.0,
"run_differential_per_game": -0.3403,
"avg_runs_scored": 4.6528,
"avg_runs_allowed": 4.9931,
"offense_index": 1.039,
"defense_index": 0.8969,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.8,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.1004
},
"edges": {
"quality_edge": 0.0735,
"offense_edge": -0.02,
"opponent_offense_edge": 0.039,
"defense_strength": 0.1099,
"opponent_defense_weakness": 0.1031,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0047,
"run_prevention": 0.9916,
"strikeout": 0.9991
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "623454",
"profile": {
"available": true,
"pitcher_id": "623454",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 305.0,
"k_percent": 25.6,
"bb_percent": 9.6,
"woba": 0.319,
"xwoba": 0.305,
"sweet_spot_percent": 29.7,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 39.0,
"avg_best_speed": 79.791,
"avg_hyper_speed": 94.2178,
"whiff_percent": 27.6,
"swing_percent": 48.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0018,
"command_and_miss": 0.3414,
"regression_edge": 0.4,
"xwoba_edge": 0.1714,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.1571,
"whiff_edge": 0.3714,
"bb_edge": -0.1,
"pitch_design_score": 0.0238
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "623454",
"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": 90.30111562509353,
"release_spin_rate": 2144.0939147176737,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 90.30111562509353,
"release_spin_rate": 2144.0939147176737,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.3011,
"release_spin_rate": 2144.0939,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0238,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1699,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1317,
"sample_weight": 1.0,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0354,
"walk_factor": 1.008,
"homer_factor": 1.0189,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "623454",
"espn_id": 28617,
"player_name": "Drew Anderson",
"team": "MIL",
"role": "pitcher",
"espn_rank": 182,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 182,
"gp_value": 46.0,
"gp_rank": 124,
"gs_value": 8.0,
"gs_rank": 186,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 3.7309,
"era_rank": null,
"w_value": 4.0,
"w_rank": 186,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 2.0,
"sv_rank": 92,
"hld_value": 6.0,
"hld_rank": 147,
"ip_value": 91.2,
"ip_rank": 137,
"h_value": 82.0,
"h_rank": 141,
"er_value": 38.0,
"er_rank": 155,
"hr_value": 13.0,
"hr_rank": 120,
"bb_value": 37.0,
"bb_rank": 105,
"k_value": 101.0,
"k_rank": 96,
"k_per_9_value": 9.916364,
"k_per_9_rank": 18,
"whip_value": 1.2981,
"whip_rank": null,
"war_value": 0.99,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9888,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9888,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.008,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0189,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0354,
"adjusted": 5
}
}
}
},
"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": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260908_MIN@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"
}
} |
| 20260908 | 20260908_NYM@MIA | away | Sean Manaea | Sean Manaea | True | 6.1 | 5.0 | -4 | 4 | 4 | 0 | 6/5 | 0/0 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.698701298701298,
"WHIP": 1.3558441558441559,
"IP": 128.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.689,
"recent_avg_IP": 6.133,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3942,
"sample_weight": 1.0,
"run_prevention_factor": 1.0335,
"strikeout_factor": 0.9811,
"walk_factor": 0.962,
"homer_factor": 1.1136,
"regression_flag": "neutral",
"k_percent": 21.7,
"bb_percent": 7.3,
"woba": 0.353,
"xwoba": 0.34,
"barrel_percent": 11.0,
"hard_hit_percent": 41.3,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 454,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "640455",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 20.0,
"R": 20.0,
"H": 33.0,
"BB": 6.0,
"SO": 27.0,
"HR": 8.0,
"BF": 133.0,
"Pitches": 458.0
},
"per_game": {
"IP": 6.0,
"ER": 4.0,
"R": 4.0,
"H": 6.6,
"BB": 1.2,
"SO": 5.4,
"HR": 1.6,
"BF": 26.6,
"Pitches": 91.6
},
"rates": {
"ERA": 5.8696,
"WHIP": 1.2717,
"ER_per_IP": 0.65217,
"H_per_IP": 1.07609,
"BB_per_IP": 0.19565,
"SO_per_IP": 0.88043,
"HR_per_IP": 0.26087
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 31.0,
"R": 32.0,
"H": 64.0,
"BB": 18.0,
"SO": 54.0,
"HR": 13.0,
"BF": 259.0,
"Pitches": 927.0
},
"per_game": {
"IP": 6.0,
"ER": 3.1,
"R": 3.2,
"H": 6.4,
"BB": 1.8,
"SO": 5.4,
"HR": 1.3,
"BF": 25.9,
"Pitches": 92.7
},
"rates": {
"ERA": 4.6243,
"WHIP": 1.3591,
"ER_per_IP": 0.51381,
"H_per_IP": 1.06077,
"BB_per_IP": 0.29834,
"SO_per_IP": 0.89503,
"HR_per_IP": 0.21547
}
},
"season": {
"games": 29,
"totals": {
"IP": 128.1,
"ER": 67.0,
"R": 74.0,
"H": 133.0,
"BB": 41.0,
"SO": 122.0,
"HR": 21.0,
"BF": 562.0,
"Pitches": 2166.0
},
"per_game": {
"IP": 4.1,
"ER": 2.3103,
"R": 2.5517,
"H": 4.5862,
"BB": 1.4138,
"SO": 4.2069,
"HR": 0.7241,
"BF": 19.3793,
"Pitches": 74.6897
},
"rates": {
"ERA": 4.6987,
"WHIP": 1.3558,
"ER_per_IP": 0.52208,
"H_per_IP": 1.03636,
"BB_per_IP": 0.31948,
"SO_per_IP": 0.95065,
"HR_per_IP": 0.16364
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.265,
"predicted_H": 6.051,
"predicted_BB": 1.576,
"predicted_SO": 5.22,
"predicted_HR": 1.233,
"predicted_ERA": 5.0966,
"predicted_WHIP": 1.3229
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 5.2,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.265,
"final": 3.5679,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 6.051,
"final": 6.03,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.576,
"final": 0.9265,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.22,
"final": 3.8929,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 1.233,
"final": 1.9613,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0966,
"final": 5.0966,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3229,
"final": 1.3229,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.1,
"ER": 31,
"H": 64,
"BB": 18,
"SO": 54,
"HR": 13,
"ERA": 4.624309392265194,
"WHIP": 1.3591160220994476,
"K9": 8.055248618784532,
"HR9": 1.9392265193370166,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.0275194752058614,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 3.0,
"predicted_IP": 6.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 3.0,
"predicted_IP": 6.1,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 144,
"wins": 66,
"losses": 78,
"win_pct": 0.4583,
"runs_scored": 605.0,
"runs_allowed": 648.0,
"run_differential": -43.0,
"run_differential_per_game": -0.2986,
"avg_runs_scored": 4.2014,
"avg_runs_allowed": 4.5,
"offense_index": 0.9382,
"defense_index": 0.9952,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.4,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0371
},
"opponent": {
"team": "MIA",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 635.0,
"runs_allowed": 625.0,
"run_differential": 10.0,
"run_differential_per_game": 0.069,
"avg_runs_scored": 4.3793,
"avg_runs_allowed": 4.3103,
"offense_index": 0.9779,
"defense_index": 1.0389,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0294
},
"edges": {
"quality_edge": -0.0077,
"offense_edge": -0.0618,
"opponent_offense_edge": -0.0221,
"defense_strength": -0.0048,
"opponent_defense_weakness": -0.0389,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 0.9973,
"strikeout": 1.0015
},
"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": 479.0,
"k_percent": 21.7,
"bb_percent": 7.3,
"woba": 0.353,
"xwoba": 0.34,
"sweet_spot_percent": 36.1,
"barrel_batted_rate": 11.0,
"hard_hit_percent": 41.3,
"avg_best_speed": 77.5811,
"avg_hyper_speed": 94.6114,
"whiff_percent": 22.0,
"swing_percent": 50.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6987,
"command_and_miss": -0.0743,
"regression_edge": 0.3714,
"xwoba_edge": -0.8286,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.4857,
"whiff_edge": -0.4286,
"bb_edge": 0.475,
"pitch_design_score": -0.2591
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.24923102451848,
"release_spin_rate": 2111.7826014761895,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.24923102451848,
"release_spin_rate": 2111.7826014761895,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2492,
"release_spin_rate": 2111.7826,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2591,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8508,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3942,
"sample_weight": 1.0,
"run_prevention_factor": 1.0335,
"strikeout_factor": 0.9811,
"walk_factor": 0.962,
"homer_factor": 1.1136,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "640455",
"espn_id": 33244,
"player_name": "Sean Manaea",
"team": "NYM",
"role": "pitcher",
"espn_rank": 454,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 454,
"gp_value": 29.0,
"gp_rank": 224,
"gs_value": 15.0,
"gs_rank": 133,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 4.6987,
"era_rank": null,
"w_value": 4.0,
"w_rank": 186,
"l_value": 7.0,
"l_rank": 84,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 128.1,
"ip_rank": 82,
"h_value": 133.0,
"h_rank": 47,
"er_value": 67.0,
"er_rank": 41,
"hr_value": 21.0,
"hr_rank": 29,
"bb_value": 41.0,
"bb_rank": 79,
"k_value": 122.0,
"k_rank": 62,
"k_per_9_value": 8.555844,
"k_per_9_rank": 20,
"whip_value": 1.3558,
"whip_rank": null,
"war_value": 0.03,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0335,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0335,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.962,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1136,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9811,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260908_NYM@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"
}
} |
| 20260908 | 20260908_NYM@MIA | home | Sandy Alcantara | Sandy Alcantara | True | 6.1 | 4.1 | -6 | 2 | 7 | 5 | 4/7 | 3/4 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5417376490630326,
"WHIP": 1.1856899488926746,
"IP": 195.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 6.522,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1387,
"sample_weight": 1.0,
"run_prevention_factor": 0.9882,
"strikeout_factor": 0.9526,
"walk_factor": 0.942,
"homer_factor": 0.935,
"regression_flag": "neutral",
"k_percent": 17.6,
"bb_percent": 6.3,
"woba": 0.295,
"xwoba": 0.296,
"barrel_percent": 5.1,
"hard_hit_percent": 35.0,
"whiff_percent": 21.1
},
"espn_rank": {
"rank": 24,
"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": "645261",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 13.0,
"R": 13.0,
"H": 31.0,
"BB": 9.0,
"SO": 14.0,
"HR": 2.0,
"BF": 134.0,
"Pitches": 494.0
},
"per_game": {
"IP": 6.1,
"ER": 2.6,
"R": 2.6,
"H": 6.2,
"BB": 1.8,
"SO": 2.8,
"HR": 0.4,
"BF": 26.8,
"Pitches": 98.8
},
"rates": {
"ERA": 3.6562,
"WHIP": 1.25,
"ER_per_IP": 0.40625,
"H_per_IP": 0.96875,
"BB_per_IP": 0.28125,
"SO_per_IP": 0.4375,
"HR_per_IP": 0.0625
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 65.0,
"ER": 19.0,
"R": 19.0,
"H": 54.0,
"BB": 18.0,
"SO": 42.0,
"HR": 6.0,
"BF": 265.0,
"Pitches": 1013.0
},
"per_game": {
"IP": 6.2,
"ER": 1.9,
"R": 1.9,
"H": 5.4,
"BB": 1.8,
"SO": 4.2,
"HR": 0.6,
"BF": 26.5,
"Pitches": 101.3
},
"rates": {
"ERA": 2.6308,
"WHIP": 1.1077,
"ER_per_IP": 0.29231,
"H_per_IP": 0.83077,
"BB_per_IP": 0.27692,
"SO_per_IP": 0.64615,
"HR_per_IP": 0.09231
}
},
"season": {
"games": 30,
"totals": {
"IP": 195.2,
"ER": 77.0,
"R": 82.0,
"H": 181.0,
"BB": 51.0,
"SO": 142.0,
"HR": 19.0,
"BF": 808.0,
"Pitches": 2961.0
},
"per_game": {
"IP": 6.2,
"ER": 2.5667,
"R": 2.7333,
"H": 6.0333,
"BB": 1.7,
"SO": 4.7333,
"HR": 0.6333,
"BF": 26.9333,
"Pitches": 98.7
},
"rates": {
"ERA": 3.5417,
"WHIP": 1.1857,
"ER_per_IP": 0.39353,
"H_per_IP": 0.92504,
"BB_per_IP": 0.26065,
"SO_per_IP": 0.72572,
"HR_per_IP": 0.0971
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.488,
"predicted_H": 5.974,
"predicted_BB": 1.878,
"predicted_SO": 4.033,
"predicted_HR": 0.58,
"predicted_ERA": 3.4495,
"predicted_WHIP": 1.2099
}
},
"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.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.488,
"final": 1.8774,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.974,
"final": 5.1639,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.878,
"final": 2.3384,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.033,
"final": 4.4298,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.58,
"final": 0.342,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4495,
"final": 3.4495,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2099,
"final": 1.2099,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 65.0,
"ER": 19,
"H": 54,
"BB": 18,
"SO": 42,
"HR": 6,
"ERA": 2.6307692307692307,
"WHIP": 1.1076923076923078,
"K9": 5.815384615384615,
"HR9": 0.8307692307692308,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 0.7969606141773871,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "645261",
"player_name": "Sandy Alcantara",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 635.0,
"runs_allowed": 625.0,
"run_differential": 10.0,
"run_differential_per_game": 0.069,
"avg_runs_scored": 4.3793,
"avg_runs_allowed": 4.3103,
"offense_index": 0.9779,
"defense_index": 1.0389,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0294
},
"opponent": {
"team": "NYM",
"games": 144,
"wins": 66,
"losses": 78,
"win_pct": 0.4583,
"runs_scored": 605.0,
"runs_allowed": 648.0,
"run_differential": -43.0,
"run_differential_per_game": -0.2986,
"avg_runs_scored": 4.2014,
"avg_runs_allowed": 4.5,
"offense_index": 0.9382,
"defense_index": 0.9952,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.4,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0371
},
"edges": {
"quality_edge": 0.0077,
"offense_edge": -0.0221,
"opponent_offense_edge": -0.0618,
"defense_strength": 0.0389,
"opponent_defense_weakness": 0.0048,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0039,
"run_prevention": 0.9858,
"strikeout": 1.0052
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "645261",
"profile": {
"available": true,
"pitcher_id": "645261",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 724.0,
"k_percent": 17.6,
"bb_percent": 6.3,
"woba": 0.295,
"xwoba": 0.296,
"sweet_spot_percent": 32.4,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 35.0,
"avg_best_speed": 77.5988,
"avg_hyper_speed": 93.5432,
"whiff_percent": 21.1,
"swing_percent": 51.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3863,
"command_and_miss": -0.3329,
"regression_edge": -0.0286,
"xwoba_edge": 0.4286,
"barrel_edge": 0.4444,
"hard_hit_edge": 0.4143,
"whiff_edge": -0.5571,
"bb_edge": 0.725,
"pitch_design_score": 0.1476
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "645261",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 102,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 102,
"pitch_usage": 0.0,
"release_speed": 92.51275382443535,
"release_spin_rate": 2245.096491486143,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 102,
"pitch_usage": 0.0,
"release_speed": 92.51275382443535,
"release_spin_rate": 2245.096491486143,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.5128,
"release_spin_rate": 2245.0965,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1476,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0546,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1387,
"sample_weight": 1.0,
"run_prevention_factor": 0.9882,
"strikeout_factor": 0.9526,
"walk_factor": 0.942,
"homer_factor": 0.935,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "645261",
"espn_id": 35241,
"player_name": "Sandy Alcantara",
"team": "MIA",
"role": "pitcher",
"espn_rank": 24,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 24,
"gp_value": 30.0,
"gp_rank": 214,
"gs_value": 30.0,
"gs_rank": 1,
"qs_value": 21.0,
"qs_rank": 1,
"era_value": 3.5417,
"era_rank": 23.0,
"w_value": 13.0,
"w_rank": 12,
"l_value": 9.0,
"l_rank": 28,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 195.2,
"ip_rank": 1,
"h_value": 181.0,
"h_rank": 1,
"er_value": 77.0,
"er_rank": 13,
"hr_value": 19.0,
"hr_rank": 45,
"bb_value": 51.0,
"bb_rank": 33,
"k_value": 142.0,
"k_rank": 39,
"k_per_9_value": 6.5315166,
"k_per_9_rank": 1053,
"whip_value": 1.1856,
"whip_rank": 27.0,
"war_value": 3.34,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9882,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9882,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.942,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.935,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9526,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 116,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260908_NYM@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"
}
} |
| 20260908 | 20260908_PIT@CHW | away | Bubba Chandler | Bubba Chandler | True | 5.0 | 6.0 | 3 | 3 | 2 | -1 | 9/4 | 1/0 | 4/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.301470588235294,
"WHIP": 1.3676470588235294,
"IP": 136.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.026,
"recent_avg_IP": 5.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0502,
"sample_weight": 1.0,
"run_prevention_factor": 1.0043,
"strikeout_factor": 0.9731,
"walk_factor": 1.056,
"homer_factor": 0.9768,
"regression_flag": "neutral",
"k_percent": 20.4,
"bb_percent": 12.0,
"woba": 0.308,
"xwoba": 0.313,
"barrel_percent": 5.6,
"hard_hit_percent": 38.2,
"whiff_percent": 21.9
},
"espn_rank": {
"rank": 131,
"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": "696149",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 10.0,
"R": 11.0,
"H": 20.0,
"BB": 10.0,
"SO": 23.0,
"HR": 2.0,
"BF": 105.0,
"Pitches": 431.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.2,
"H": 4.0,
"BB": 2.0,
"SO": 4.6,
"HR": 0.4,
"BF": 21.0,
"Pitches": 86.2
},
"rates": {
"ERA": 3.5065,
"WHIP": 1.1688,
"ER_per_IP": 0.38961,
"H_per_IP": 0.77922,
"BB_per_IP": 0.38961,
"SO_per_IP": 0.8961,
"HR_per_IP": 0.07792
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 21.0,
"R": 25.0,
"H": 44.0,
"BB": 23.0,
"SO": 42.0,
"HR": 3.0,
"BF": 213.0,
"Pitches": 885.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.5,
"H": 4.4,
"BB": 2.3,
"SO": 4.2,
"HR": 0.3,
"BF": 21.3,
"Pitches": 88.5
},
"rates": {
"ERA": 3.755,
"WHIP": 1.3311,
"ER_per_IP": 0.41722,
"H_per_IP": 0.87417,
"BB_per_IP": 0.45695,
"SO_per_IP": 0.83444,
"HR_per_IP": 0.0596
}
},
"season": {
"games": 27,
"totals": {
"IP": 136.0,
"ER": 65.0,
"R": 75.0,
"H": 115.0,
"BB": 71.0,
"SO": 121.0,
"HR": 12.0,
"BF": 592.0,
"Pitches": 2334.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4074,
"R": 2.7778,
"H": 4.2593,
"BB": 2.6296,
"SO": 4.4815,
"HR": 0.4444,
"BF": 21.9259,
"Pitches": 86.4444
},
"rates": {
"ERA": 4.3015,
"WHIP": 1.3676,
"ER_per_IP": 0.47794,
"H_per_IP": 0.84559,
"BB_per_IP": 0.52206,
"SO_per_IP": 0.88971,
"HR_per_IP": 0.08824
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.15,
"predicted_H": 4.244,
"predicted_BB": 2.145,
"predicted_SO": 4.419,
"predicted_HR": 0.425,
"predicted_ERA": 3.8692,
"predicted_WHIP": 1.2778
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.15,
"final": 2.5036,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.244,
"final": 6.2225,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.145,
"final": 1.6687,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.419,
"final": 4.2447,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.425,
"final": 0.2482,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8692,
"final": 3.8692,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2778,
"final": 1.2778,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 21,
"H": 44,
"BB": 23,
"SO": 42,
"HR": 3,
"ERA": 3.7549668874172184,
"WHIP": 1.3311258278145695,
"K9": 7.509933774834437,
"HR9": 0.5364238410596026,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.9290186885533422,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696149",
"player_name": "Bubba Chandler",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 9.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 144,
"wins": 71,
"losses": 73,
"win_pct": 0.4931,
"runs_scored": 694.0,
"runs_allowed": 668.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1806,
"avg_runs_scored": 4.8194,
"avg_runs_allowed": 4.6389,
"offense_index": 1.0762,
"defense_index": 0.9654,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0513
},
"opponent": {
"team": "CHW",
"games": 143,
"wins": 75,
"losses": 68,
"win_pct": 0.5245,
"runs_scored": 680.0,
"runs_allowed": 631.0,
"run_differential": 49.0,
"run_differential_per_game": 0.3427,
"avg_runs_scored": 4.7552,
"avg_runs_allowed": 4.4126,
"offense_index": 1.0619,
"defense_index": 1.0149,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.4,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0629
},
"edges": {
"quality_edge": -0.0116,
"offense_edge": 0.0762,
"opponent_offense_edge": 0.0619,
"defense_strength": -0.0346,
"opponent_defense_weakness": -0.0149,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.996,
"run_prevention": 1.0139,
"strikeout": 0.9947
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696149",
"profile": {
"available": true,
"pitcher_id": "696149",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 526.0,
"k_percent": 20.4,
"bb_percent": 12.0,
"woba": 0.308,
"xwoba": 0.313,
"sweet_spot_percent": 30.8,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 38.2,
"avg_best_speed": 78.141,
"avg_hyper_speed": 93.8425,
"whiff_percent": 21.9,
"swing_percent": 47.3
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0811,
"command_and_miss": -0.3979,
"regression_edge": -0.1429,
"xwoba_edge": -0.0571,
"barrel_edge": 0.3333,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.4429,
"bb_edge": -0.7,
"pitch_design_score": 0.2763
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696149",
"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": 94.8103538897678,
"release_spin_rate": 2354.536984834445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 94.8103538897678,
"release_spin_rate": 2354.536984834445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.8104,
"release_spin_rate": 2354.537,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2763,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.9736,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0502,
"sample_weight": 1.0,
"run_prevention_factor": 1.0043,
"strikeout_factor": 0.9731,
"walk_factor": 1.056,
"homer_factor": 0.9768,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696149",
"espn_id": 4683325,
"player_name": "Bubba Chandler",
"team": "PIT",
"role": "pitcher",
"espn_rank": 131,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 131,
"gp_value": 27.0,
"gp_rank": 278,
"gs_value": 26.0,
"gs_rank": 50,
"qs_value": 4.0,
"qs_rank": 122,
"era_value": 4.3014,
"era_rank": null,
"w_value": 6.0,
"w_rank": 102,
"l_value": 9.0,
"l_rank": 28,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 136.0,
"ip_rank": 67,
"h_value": 115.0,
"h_rank": 87,
"er_value": 65.0,
"er_rank": 49,
"hr_value": 12.0,
"hr_rank": 130,
"bb_value": 71.0,
"bb_rank": 3,
"k_value": 121.0,
"k_rank": 64,
"k_per_9_value": 8.007353,
"k_per_9_rank": 25,
"whip_value": 1.3676,
"whip_rank": null,
"war_value": 1.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0043,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0043,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.056,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9768,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9731,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 9,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"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 -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260908_PIT@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"
}
} |
| 20260908 | 20260908_PIT@CHW | home | Sean Burke | Sean Burke | True | 5.2 | 1.1 | -13 | 3 | 7 | 4 | 2/8 | 1/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.200431034482759,
"WHIP": 1.144396551724138,
"IP": 154.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.403,
"recent_avg_IP": 5.2,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1936,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.028,
"walk_factor": 0.986,
"homer_factor": 0.9955,
"regression_flag": "neutral",
"k_percent": 26.3,
"bb_percent": 8.5,
"woba": 0.295,
"xwoba": 0.296,
"barrel_percent": 7.7,
"hard_hit_percent": 37.5,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 12,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 154.2,
"season_ERA": 3.2,
"season_WHIP": 1.144,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680732",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 11.0,
"R": 11.0,
"H": 18.0,
"BB": 15.0,
"SO": 23.0,
"HR": 4.0,
"BF": 110.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 3.6,
"BB": 3.0,
"SO": 4.6,
"HR": 0.8,
"BF": 22.0,
"Pitches": 92.0
},
"rates": {
"ERA": 3.8077,
"WHIP": 1.2692,
"ER_per_IP": 0.42308,
"H_per_IP": 0.69231,
"BB_per_IP": 0.57692,
"SO_per_IP": 0.88462,
"HR_per_IP": 0.15385
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 16.0,
"R": 17.0,
"H": 36.0,
"BB": 21.0,
"SO": 61.0,
"HR": 6.0,
"BF": 224.0,
"Pitches": 940.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.7,
"H": 3.6,
"BB": 2.1,
"SO": 6.1,
"HR": 0.6,
"BF": 22.4,
"Pitches": 94.0
},
"rates": {
"ERA": 2.5714,
"WHIP": 1.0179,
"ER_per_IP": 0.28571,
"H_per_IP": 0.64286,
"BB_per_IP": 0.375,
"SO_per_IP": 1.08929,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 28,
"totals": {
"IP": 154.2,
"ER": 55.0,
"R": 57.0,
"H": 123.0,
"BB": 54.0,
"SO": 167.0,
"HR": 18.0,
"BF": 635.0,
"Pitches": 2550.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9643,
"R": 2.0357,
"H": 4.3929,
"BB": 1.9286,
"SO": 5.9643,
"HR": 0.6429,
"BF": 22.6786,
"Pitches": 91.0714
},
"rates": {
"ERA": 3.2004,
"WHIP": 1.1444,
"ER_per_IP": 0.3556,
"H_per_IP": 0.79526,
"BB_per_IP": 0.34914,
"SO_per_IP": 1.07974,
"HR_per_IP": 0.11638
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.119,
"predicted_H": 4.086,
"predicted_BB": 2.478,
"predicted_SO": 5.467,
"predicted_HR": 0.734,
"predicted_ERA": 3.4423,
"predicted_WHIP": 1.1849
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.119,
"final": 2.4837,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.086,
"final": 3.2224,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.478,
"final": 1.8661,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.467,
"final": 4.4456,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.734,
"final": 1.2581,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4423,
"final": 3.4423,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1849,
"final": 1.1849,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 16,
"H": 36,
"BB": 21,
"SO": 61,
"HR": 6,
"ERA": 2.5714285714285716,
"WHIP": 1.017857142857143,
"K9": 9.80357142857143,
"HR9": 0.9642857142857144,
"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-01T00:00:00"
},
"recent_form_boost": 0.7880389108806838,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680732",
"player_name": "Sean Burke",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 143,
"wins": 75,
"losses": 68,
"win_pct": 0.5245,
"runs_scored": 680.0,
"runs_allowed": 631.0,
"run_differential": 49.0,
"run_differential_per_game": 0.3427,
"avg_runs_scored": 4.7552,
"avg_runs_allowed": 4.4126,
"offense_index": 1.0619,
"defense_index": 1.0149,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.4,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0629
},
"opponent": {
"team": "PIT",
"games": 144,
"wins": 71,
"losses": 73,
"win_pct": 0.4931,
"runs_scored": 694.0,
"runs_allowed": 668.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1806,
"avg_runs_scored": 4.8194,
"avg_runs_allowed": 4.6389,
"offense_index": 1.0762,
"defense_index": 0.9654,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0513
},
"edges": {
"quality_edge": 0.0116,
"offense_edge": 0.0619,
"opponent_offense_edge": 0.0762,
"defense_strength": 0.0149,
"opponent_defense_weakness": 0.0346,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9979,
"run_prevention": 1.0101,
"strikeout": 0.9943
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 546.0,
"k_percent": 26.3,
"bb_percent": 8.5,
"woba": 0.295,
"xwoba": 0.296,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 37.5,
"avg_best_speed": 79.0989,
"avg_hyper_speed": 93.7873,
"whiff_percent": 25.6,
"swing_percent": 49.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.194,
"command_and_miss": 0.3414,
"regression_edge": -0.0286,
"xwoba_edge": 0.4286,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.0857,
"bb_edge": 0.175,
"pitch_design_score": -0.0126
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680732",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.65202320477285,
"release_spin_rate": 2508.661669048999,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.65202320477285,
"release_spin_rate": 2508.661669048999,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.652,
"release_spin_rate": 2508.6617,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0126,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0897,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1936,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.028,
"walk_factor": 0.986,
"homer_factor": 0.9955,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680732",
"espn_id": 4867679,
"player_name": "Sean Burke",
"team": "CHW",
"role": "pitcher",
"espn_rank": 12,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 12,
"gp_value": 28.0,
"gp_rank": 248,
"gs_value": 24.0,
"gs_rank": 69,
"qs_value": 10.0,
"qs_rank": 56,
"era_value": 3.2004,
"era_rank": 17.0,
"w_value": 8.0,
"w_rank": 63,
"l_value": 6.0,
"l_rank": 109,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 154.2,
"ip_rank": 35,
"h_value": 123.0,
"h_rank": 68,
"er_value": 55.0,
"er_rank": 85,
"hr_value": 18.0,
"hr_rank": 53,
"bb_value": 54.0,
"bb_rank": 25,
"k_value": 167.0,
"k_rank": 19,
"k_per_9_value": 9.717672,
"k_per_9_rank": 14,
"whip_value": 1.1443,
"whip_rank": 19.0,
"war_value": 4.3,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9835,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9835,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 0.986,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9955,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.028,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 81,
"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 -13 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."
}
],
"provenance": {
"prediction": "output/games/20260908_PIT@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"
}
} |
| 20260908 | 20260908_STL@SF | away | Quinn Mathews | Quinn Mathews | True | 5.0 | 6.0 | 3 | 4 | 2 | -2 | 6/5 | 4/2 | 4/4 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 4.378378378378378,
"WHIP": 1.581081081081081,
"IP": 24.2,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.933,
"recent_avg_IP": 4.933,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1807,
"sample_weight": 0.45,
"run_prevention_factor": 0.9846,
"strikeout_factor": 1.0041,
"walk_factor": 1.0135,
"homer_factor": 0.9346,
"regression_flag": "positive_pitcher_regression",
"k_percent": 21.4,
"bb_percent": 10.7,
"woba": 0.32,
"xwoba": 0.283,
"barrel_percent": 1.3,
"hard_hit_percent": 34.7,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 333,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687273",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 12.0,
"R": 12.0,
"H": 27.0,
"BB": 12.0,
"SO": 24.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 492.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 5.4,
"BB": 2.4,
"SO": 4.8,
"HR": 0.2,
"BF": 22.4,
"Pitches": 98.4
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.5811,
"ER_per_IP": 0.48649,
"H_per_IP": 1.09459,
"BB_per_IP": 0.48649,
"SO_per_IP": 0.97297,
"HR_per_IP": 0.04054
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 12.0,
"R": 12.0,
"H": 27.0,
"BB": 12.0,
"SO": 24.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 492.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 5.4,
"BB": 2.4,
"SO": 4.8,
"HR": 0.2,
"BF": 22.4,
"Pitches": 98.4
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.5811,
"ER_per_IP": 0.48649,
"H_per_IP": 1.09459,
"BB_per_IP": 0.48649,
"SO_per_IP": 0.97297,
"HR_per_IP": 0.04054
}
},
"season": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 12.0,
"R": 12.0,
"H": 27.0,
"BB": 12.0,
"SO": 24.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 492.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 5.4,
"BB": 2.4,
"SO": 4.8,
"HR": 0.2,
"BF": 22.4,
"Pitches": 98.4
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.5811,
"ER_per_IP": 0.48649,
"H_per_IP": 1.09459,
"BB_per_IP": 0.48649,
"SO_per_IP": 0.97297,
"HR_per_IP": 0.04054
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.466,
"predicted_H": 5.169,
"predicted_BB": 2.146,
"predicted_SO": 4.783,
"predicted_HR": 0.468,
"predicted_ERA": 4.4391,
"predicted_WHIP": 1.4631
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.466,
"final": 3.327,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.169,
"final": 5.6354,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.146,
"final": 3.1866,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.783,
"final": 4.3435,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.468,
"final": 0.2053,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4391,
"final": 4.4391,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4631,
"final": 1.4631,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"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": 24.2,
"ER": 12,
"H": 27,
"BB": 12,
"SO": 24,
"HR": 1,
"ERA": 4.378378378378378,
"WHIP": 1.581081081081081,
"K9": 8.756756756756756,
"HR9": 0.36486486486486486,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 1.0043605311380936,
"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": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687273",
"player_name": "Quinn Mathews",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.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": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": "STL",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 661.0,
"runs_allowed": 671.0,
"run_differential": -10.0,
"run_differential_per_game": -0.069,
"avg_runs_scored": 4.5586,
"avg_runs_allowed": 4.6276,
"offense_index": 1.017,
"defense_index": 0.9686,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 5.8,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0114
},
"opponent": {
"team": "SF",
"games": 145,
"wins": 60,
"losses": 85,
"win_pct": 0.4138,
"runs_scored": 608.0,
"runs_allowed": 682.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5103,
"avg_runs_scored": 4.1931,
"avg_runs_allowed": 4.7034,
"offense_index": 0.9354,
"defense_index": 0.953,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 5.7,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1359
},
"edges": {
"quality_edge": 0.1245,
"offense_edge": 0.017,
"opponent_offense_edge": -0.0646,
"defense_strength": -0.0314,
"opponent_defense_weakness": 0.047,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0066,
"run_prevention": 0.9866,
"strikeout": 1.0089
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687273",
"profile": {
"available": true,
"pitcher_id": "687273",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 41.0,
"k_percent": 21.4,
"bb_percent": 10.7,
"woba": 0.32,
"xwoba": 0.283,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 1.3,
"hard_hit_percent": 34.7,
"avg_best_speed": 78.4583,
"avg_hyper_speed": 93.5894,
"whiff_percent": 27.2,
"swing_percent": 44.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5459,
"command_and_miss": -0.0036,
"regression_edge": 1.0571,
"xwoba_edge": 0.8,
"barrel_edge": 1.2889,
"hard_hit_edge": 0.4571,
"whiff_edge": 0.3143,
"bb_edge": -0.375,
"pitch_design_score": -0.1107
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687273",
"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": 87.8989365165491,
"release_spin_rate": 2078.2117200217035,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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": 87.8989365165491,
"release_spin_rate": 2078.2117200217035,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.8989,
"release_spin_rate": 2078.2117,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1107,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.791,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1807,
"sample_weight": 0.45,
"run_prevention_factor": 0.9846,
"strikeout_factor": 1.0041,
"walk_factor": 1.0135,
"homer_factor": 0.9346,
"woba_minus_xwoba": 0.037,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "687273",
"espn_id": 4837405,
"player_name": "Quinn Mathews",
"team": "STL",
"role": "pitcher",
"espn_rank": 333,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 333,
"gp_value": 5.0,
"gp_rank": 623,
"gs_value": 5.0,
"gs_rank": 219,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 4.3783,
"era_rank": null,
"w_value": 1.0,
"w_rank": 408,
"l_value": 2.0,
"l_rank": 325,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 24.2,
"ip_rank": 474,
"h_value": 27.0,
"h_rank": 438,
"er_value": 12.0,
"er_rank": 471,
"hr_value": 1.0,
"hr_rank": 610,
"bb_value": 12.0,
"bb_rank": 437,
"k_value": 24.0,
"k_rank": 451,
"k_per_9_value": 8.756757,
"k_per_9_rank": 25,
"whip_value": 1.581,
"whip_rank": null,
"war_value": 0.22,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9931,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9931,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0061,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9706,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0018,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260908_STL@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"
}
} |
| 20260908 | 20260908_STL@SF | home | Landen Roupp | Landen Roupp | True | 5.2 | 6.0 | 1 | 2 | 0 | -2 | 5/2 | 3/4 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.168202764976959,
"WHIP": 1.2926267281105992,
"IP": 144.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.358,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.223,
"sample_weight": 1.0,
"run_prevention_factor": 0.981,
"strikeout_factor": 1.0011,
"walk_factor": 1.038,
"homer_factor": 0.9015,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 11.1,
"woba": 0.296,
"xwoba": 0.299,
"barrel_percent": 5.0,
"hard_hit_percent": 29.0,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 185,
"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": "694738",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 10.0,
"R": 11.0,
"H": 18.0,
"BB": 16.0,
"SO": 17.0,
"HR": 2.0,
"BF": 115.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.2,
"H": 3.6,
"BB": 3.2,
"SO": 3.4,
"HR": 0.4,
"BF": 23.0,
"Pitches": 87.2
},
"rates": {
"ERA": 3.4177,
"WHIP": 1.2911,
"ER_per_IP": 0.37975,
"H_per_IP": 0.68354,
"BB_per_IP": 0.60759,
"SO_per_IP": 0.64557,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 22.0,
"R": 23.0,
"H": 37.0,
"BB": 28.0,
"SO": 38.0,
"HR": 5.0,
"BF": 233.0,
"Pitches": 911.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.3,
"H": 3.7,
"BB": 2.8,
"SO": 3.8,
"HR": 0.5,
"BF": 23.3,
"Pitches": 91.1
},
"rates": {
"ERA": 3.5569,
"WHIP": 1.1677,
"ER_per_IP": 0.39521,
"H_per_IP": 0.66467,
"BB_per_IP": 0.50299,
"SO_per_IP": 0.68263,
"HR_per_IP": 0.08982
}
},
"season": {
"games": 27,
"totals": {
"IP": 144.2,
"ER": 67.0,
"R": 72.0,
"H": 119.0,
"BB": 68.0,
"SO": 137.0,
"HR": 11.0,
"BF": 614.0,
"Pitches": 2543.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4815,
"R": 2.6667,
"H": 4.4074,
"BB": 2.5185,
"SO": 5.0741,
"HR": 0.4074,
"BF": 22.7407,
"Pitches": 94.1852
},
"rates": {
"ERA": 4.1682,
"WHIP": 1.2926,
"ER_per_IP": 0.46313,
"H_per_IP": 0.82258,
"BB_per_IP": 0.47005,
"SO_per_IP": 0.947,
"HR_per_IP": 0.07604
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.266,
"predicted_H": 4.056,
"predicted_BB": 2.807,
"predicted_SO": 4.092,
"predicted_HR": 0.495,
"predicted_ERA": 3.7545,
"predicted_WHIP": 1.2633
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.266,
"final": 2.1553,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.056,
"final": 4.4487,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.807,
"final": 2.8873,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.092,
"final": 4.8857,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.495,
"final": 0.7051,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7545,
"final": 3.7545,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2633,
"final": 1.2633,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 22,
"H": 37,
"BB": 28,
"SO": 38,
"HR": 5,
"ERA": 3.5568862275449105,
"WHIP": 1.1676646706586826,
"K9": 6.1437125748503,
"HR9": 0.8083832335329342,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.9026480853888104,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694738",
"player_name": "Landen Roupp",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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": 145,
"wins": 60,
"losses": 85,
"win_pct": 0.4138,
"runs_scored": 608.0,
"runs_allowed": 682.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5103,
"avg_runs_scored": 4.1931,
"avg_runs_allowed": 4.7034,
"offense_index": 0.9354,
"defense_index": 0.953,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 5.7,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1359
},
"opponent": {
"team": "STL",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 661.0,
"runs_allowed": 671.0,
"run_differential": -10.0,
"run_differential_per_game": -0.069,
"avg_runs_scored": 4.5586,
"avg_runs_allowed": 4.6276,
"offense_index": 1.017,
"defense_index": 0.9686,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 5.8,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0114
},
"edges": {
"quality_edge": -0.1245,
"offense_edge": -0.0646,
"opponent_offense_edge": 0.017,
"defense_strength": -0.047,
"opponent_defense_weakness": 0.0314,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9929,
"run_prevention": 1.0136,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694738",
"profile": {
"available": true,
"pitcher_id": "694738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 545.0,
"k_percent": 22.3,
"bb_percent": 11.1,
"woba": 0.296,
"xwoba": 0.299,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 29.0,
"avg_best_speed": 75.0936,
"avg_hyper_speed": 92.5674,
"whiff_percent": 24.9,
"swing_percent": 43.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4741,
"command_and_miss": -0.0807,
"regression_edge": -0.0857,
"xwoba_edge": 0.3429,
"barrel_edge": 0.4667,
"hard_hit_edge": 1.2714,
"whiff_edge": -0.0143,
"bb_edge": -0.475,
"pitch_design_score": -0.161
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.00224317148336,
"release_spin_rate": 2326.4570396123822,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.00224317148336,
"release_spin_rate": 2326.4570396123822,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.0022,
"release_spin_rate": 2326.457,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.161,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1496,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.223,
"sample_weight": 1.0,
"run_prevention_factor": 0.981,
"strikeout_factor": 1.0011,
"walk_factor": 1.038,
"homer_factor": 0.9015,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694738",
"espn_id": 4345404,
"player_name": "Landen Roupp",
"team": "SF",
"role": "pitcher",
"espn_rank": 185,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 185,
"gp_value": 27.0,
"gp_rank": 278,
"gs_value": 27.0,
"gs_rank": 35,
"qs_value": 10.0,
"qs_rank": 56,
"era_value": 4.1682,
"era_rank": null,
"w_value": 8.0,
"w_rank": 63,
"l_value": 13.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 144.2,
"ip_rank": 49,
"h_value": 119.0,
"h_rank": 77,
"er_value": 67.0,
"er_rank": 41,
"hr_value": 11.0,
"hr_rank": 144,
"bb_value": 68.0,
"bb_rank": 6,
"k_value": 137.0,
"k_rank": 45,
"k_per_9_value": 8.523042,
"k_per_9_rank": 24,
"whip_value": 1.2926,
"whip_rank": null,
"war_value": 0.98,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.981,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.981,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.038,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9015,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0011,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260908_STL@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"
}
} |
| 20260908 | 20260908_TB@ATL | away | Freddy Peralta | Freddy Peralta | True | 5.2 | 6.0 | 1 | 3 | 1 | -2 | 8/5 | 1/1 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.959183673469388,
"WHIP": 1.3741496598639455,
"IP": 147.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.25,
"recent_avg_IP": 5.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1227,
"sample_weight": 1.0,
"run_prevention_factor": 0.9896,
"strikeout_factor": 1.0069,
"walk_factor": 0.984,
"homer_factor": 0.9782,
"regression_flag": "positive_pitcher_regression",
"k_percent": 21.8,
"bb_percent": 8.4,
"woba": 0.336,
"xwoba": 0.305,
"barrel_percent": 6.1,
"hard_hit_percent": 38.1,
"whiff_percent": 26.4
},
"espn_rank": {
"rank": 692,
"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": "642547",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 11.0,
"R": 11.0,
"H": 19.0,
"BB": 5.0,
"SO": 24.0,
"HR": 4.0,
"BF": 112.0,
"Pitches": 427.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.2,
"H": 3.8,
"BB": 1.0,
"SO": 4.8,
"HR": 0.8,
"BF": 22.4,
"Pitches": 85.4
},
"rates": {
"ERA": 3.3371,
"WHIP": 0.809,
"ER_per_IP": 0.37079,
"H_per_IP": 0.64045,
"BB_per_IP": 0.16854,
"SO_per_IP": 0.80899,
"HR_per_IP": 0.13483
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 30.0,
"R": 33.0,
"H": 51.0,
"BB": 16.0,
"SO": 48.0,
"HR": 10.0,
"BF": 221.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.3,
"H": 5.1,
"BB": 1.6,
"SO": 4.8,
"HR": 1.0,
"BF": 22.1,
"Pitches": 89.3
},
"rates": {
"ERA": 5.2258,
"WHIP": 1.2968,
"ER_per_IP": 0.58065,
"H_per_IP": 0.9871,
"BB_per_IP": 0.30968,
"SO_per_IP": 0.92903,
"HR_per_IP": 0.19355
}
},
"season": {
"games": 28,
"totals": {
"IP": 147.0,
"ER": 81.0,
"R": 89.0,
"H": 148.0,
"BB": 54.0,
"SO": 140.0,
"HR": 23.0,
"BF": 643.0,
"Pitches": 2591.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8929,
"R": 3.1786,
"H": 5.2857,
"BB": 1.9286,
"SO": 5.0,
"HR": 0.8214,
"BF": 22.9643,
"Pitches": 92.5357
},
"rates": {
"ERA": 4.9592,
"WHIP": 1.3741,
"ER_per_IP": 0.55102,
"H_per_IP": 1.0068,
"BB_per_IP": 0.36735,
"SO_per_IP": 0.95238,
"HR_per_IP": 0.15646
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.725,
"predicted_H": 4.826,
"predicted_BB": 1.551,
"predicted_SO": 5.012,
"predicted_HR": 0.889,
"predicted_ERA": 4.3494,
"predicted_WHIP": 1.131
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.725,
"final": 2.8389,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.826,
"final": 6.1401,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.551,
"final": 1.3229,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.012,
"final": 4.593,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.889,
"final": 0.5209,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3494,
"final": 4.3494,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.131,
"final": 1.131,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 30,
"H": 51,
"BB": 16,
"SO": 48,
"HR": 10,
"ERA": 5.225806451612903,
"WHIP": 1.296774193548387,
"K9": 8.361290322580645,
"HR9": 1.7419354838709675,
"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-01T00:00:00"
},
"recent_form_boost": 1.0936293486687023,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "642547",
"player_name": "Freddy Peralta",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 143,
"wins": 85,
"losses": 58,
"win_pct": 0.5944,
"runs_scored": 647.0,
"runs_allowed": 600.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3287,
"avg_runs_scored": 4.5245,
"avg_runs_allowed": 4.1958,
"offense_index": 1.0103,
"defense_index": 1.0673,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.1556
},
"opponent": {
"team": "ATL",
"games": 144,
"wins": 85,
"losses": 59,
"win_pct": 0.5903,
"runs_scored": 665.0,
"runs_allowed": 546.0,
"run_differential": 119.0,
"run_differential_per_game": 0.8264,
"avg_runs_scored": 4.6181,
"avg_runs_allowed": 3.7917,
"offense_index": 1.0312,
"defense_index": 1.1811,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.4,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2133
},
"edges": {
"quality_edge": -0.0577,
"offense_edge": 0.0103,
"opponent_offense_edge": 0.0312,
"defense_strength": 0.0673,
"opponent_defense_weakness": -0.1811,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9985,
"run_prevention": 1.0011,
"strikeout": 0.9958
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642547",
"profile": {
"available": true,
"pitcher_id": "642547",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 21.8,
"bb_percent": 8.4,
"woba": 0.336,
"xwoba": 0.305,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 38.1,
"avg_best_speed": 76.2812,
"avg_hyper_speed": 93.5656,
"whiff_percent": 26.4,
"swing_percent": 47.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.021,
"command_and_miss": 0.0971,
"regression_edge": 0.8857,
"xwoba_edge": 0.1714,
"barrel_edge": 0.2222,
"hard_hit_edge": -0.0286,
"whiff_edge": 0.2,
"bb_edge": 0.2,
"pitch_design_score": -0.036
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642547",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 89.23342464094252,
"release_spin_rate": 2302.228094715452,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 89.23342464094252,
"release_spin_rate": 2302.228094715452,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.2334,
"release_spin_rate": 2302.2281,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.036,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2572,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1227,
"sample_weight": 1.0,
"run_prevention_factor": 0.9896,
"strikeout_factor": 1.0069,
"walk_factor": 0.984,
"homer_factor": 0.9782,
"woba_minus_xwoba": 0.031,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "642547",
"espn_id": 39825,
"player_name": "Freddy Peralta",
"team": "TB",
"role": "pitcher",
"espn_rank": 692,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 692,
"gp_value": 28.0,
"gp_rank": 248,
"gs_value": 28.0,
"gs_rank": 17,
"qs_value": 7.0,
"qs_rank": 80,
"era_value": 4.9591,
"era_rank": 45.0,
"w_value": 7.0,
"w_rank": 83,
"l_value": 11.0,
"l_rank": 9,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 147.0,
"ip_rank": 47,
"h_value": 148.0,
"h_rank": 18,
"er_value": 81.0,
"er_rank": 9,
"hr_value": 23.0,
"hr_rank": 20,
"bb_value": 54.0,
"bb_rank": 25,
"k_value": 140.0,
"k_rank": 41,
"k_per_9_value": 8.571428,
"k_per_9_rank": 23,
"whip_value": 1.3741,
"whip_rank": 43.0,
"war_value": -0.27,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9896,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9896,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.984,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9782,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0069,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "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/20260908_TB@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_TB@ATL | home | AJ Smith-Shawver | AJ Smith-Shawver | True | 4.1 | 3.1 | -3 | 5 | 4 | -1 | 6/5 | 1/2 | 0/3 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 7.132075471698113,
"WHIP": 1.7547169811320753,
"IP": 17.2,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.417,
"recent_avg_IP": 4.417,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0728,
"sample_weight": 0.45,
"run_prevention_factor": 1.0062,
"strikeout_factor": 0.9882,
"walk_factor": 1.0351,
"homer_factor": 1.0019,
"regression_flag": "positive_pitcher_regression",
"k_percent": 17.9,
"bb_percent": 13.1,
"woba": 0.353,
"xwoba": 0.32,
"barrel_percent": 6.9,
"hard_hit_percent": 37.9,
"whiff_percent": 24.5
},
"espn_rank": {
"rank": 709,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700363",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 17.2,
"ER": 14.0,
"R": 14.0,
"H": 20.0,
"BB": 11.0,
"SO": 15.0,
"HR": 2.0,
"BF": 84.0,
"Pitches": 320.0
},
"per_game": {
"IP": 4.1,
"ER": 3.5,
"R": 3.5,
"H": 5.0,
"BB": 2.75,
"SO": 3.75,
"HR": 0.5,
"BF": 21.0,
"Pitches": 80.0
},
"rates": {
"ERA": 7.1321,
"WHIP": 1.7547,
"ER_per_IP": 0.79245,
"H_per_IP": 1.13208,
"BB_per_IP": 0.62264,
"SO_per_IP": 0.84906,
"HR_per_IP": 0.11321
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 17.2,
"ER": 14.0,
"R": 14.0,
"H": 20.0,
"BB": 11.0,
"SO": 15.0,
"HR": 2.0,
"BF": 84.0,
"Pitches": 320.0
},
"per_game": {
"IP": 4.1,
"ER": 3.5,
"R": 3.5,
"H": 5.0,
"BB": 2.75,
"SO": 3.75,
"HR": 0.5,
"BF": 21.0,
"Pitches": 80.0
},
"rates": {
"ERA": 7.1321,
"WHIP": 1.7547,
"ER_per_IP": 0.79245,
"H_per_IP": 1.13208,
"BB_per_IP": 0.62264,
"SO_per_IP": 0.84906,
"HR_per_IP": 0.11321
}
},
"season": {
"games": 4,
"totals": {
"IP": 17.2,
"ER": 14.0,
"R": 14.0,
"H": 20.0,
"BB": 11.0,
"SO": 15.0,
"HR": 2.0,
"BF": 84.0,
"Pitches": 320.0
},
"per_game": {
"IP": 4.1,
"ER": 3.5,
"R": 3.5,
"H": 5.0,
"BB": 2.75,
"SO": 3.75,
"HR": 0.5,
"BF": 21.0,
"Pitches": 80.0
},
"rates": {
"ERA": 7.1321,
"WHIP": 1.7547,
"ER_per_IP": 0.79245,
"H_per_IP": 1.13208,
"BB_per_IP": 0.62264,
"SO_per_IP": 0.84906,
"HR_per_IP": 0.11321
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.846,
"predicted_H": 4.716,
"predicted_BB": 2.184,
"predicted_SO": 4.066,
"predicted_HR": 0.595,
"predicted_ERA": 5.6696,
"predicted_WHIP": 1.5271
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.846,
"final": 4.1055,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.716,
"final": 5.4668,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.184,
"final": 1.4917,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 4.066,
"final": 1.6884,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.595,
"final": 0.8318,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6696,
"final": 5.6696,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5271,
"final": 1.5271,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"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": 17.2,
"ER": 14,
"H": 20,
"BB": 11,
"SO": 15,
"HR": 2,
"ERA": 7.132075471698114,
"WHIP": 1.7547169811320757,
"K9": 7.641509433962265,
"HR9": 1.018867924528302,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.1847549884360844,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 0.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 5,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 0,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700363",
"player_name": "AJ Smith-Shawver",
"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": 1.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 0.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 5.0,
"predicted_SO": 0.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": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 144,
"wins": 85,
"losses": 59,
"win_pct": 0.5903,
"runs_scored": 665.0,
"runs_allowed": 546.0,
"run_differential": 119.0,
"run_differential_per_game": 0.8264,
"avg_runs_scored": 4.6181,
"avg_runs_allowed": 3.7917,
"offense_index": 1.0312,
"defense_index": 1.1811,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.4,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2133
},
"opponent": {
"team": "TB",
"games": 143,
"wins": 85,
"losses": 58,
"win_pct": 0.5944,
"runs_scored": 647.0,
"runs_allowed": 600.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3287,
"avg_runs_scored": 4.5245,
"avg_runs_allowed": 4.1958,
"offense_index": 1.0103,
"defense_index": 1.0673,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.1556
},
"edges": {
"quality_edge": 0.0577,
"offense_edge": 0.0312,
"opponent_offense_edge": 0.0103,
"defense_strength": 0.1811,
"opponent_defense_weakness": -0.0673,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0073,
"run_prevention": 0.9807,
"strikeout": 1.0009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700363",
"profile": {
"available": true,
"pitcher_id": "700363",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 40.0,
"k_percent": 17.9,
"bb_percent": 13.1,
"woba": 0.353,
"xwoba": 0.32,
"sweet_spot_percent": 29.3,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 37.9,
"avg_best_speed": 78.3232,
"avg_hyper_speed": 94.062,
"whiff_percent": 24.5,
"swing_percent": 48.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.226,
"command_and_miss": -0.4836,
"regression_edge": 0.9429,
"xwoba_edge": -0.2571,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.0,
"whiff_edge": -0.0714,
"bb_edge": -0.975,
"pitch_design_score": -0.047
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700363",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 89.03730434782608,
"release_spin_rate": 1867.4026086956524,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 89.03730434782608,
"release_spin_rate": 1867.4026086956524,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.0373,
"release_spin_rate": 1867.4026,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.047,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3356,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0728,
"sample_weight": 0.45,
"run_prevention_factor": 1.0062,
"strikeout_factor": 0.9882,
"walk_factor": 1.0351,
"homer_factor": 1.0019,
"woba_minus_xwoba": 0.033,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "700363",
"espn_id": 4917640,
"player_name": "AJ Smith-Shawver",
"team": "ATL",
"role": "pitcher",
"espn_rank": 709,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 709,
"gp_value": 4.0,
"gp_rank": 664,
"gs_value": 4.0,
"gs_rank": 233,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 7.132,
"era_rank": null,
"w_value": 0.0,
"w_rank": 531,
"l_value": 1.0,
"l_rank": 426,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 17.2,
"ip_rank": 531,
"h_value": 20.0,
"h_rank": 512,
"er_value": 14.0,
"er_rank": 439,
"hr_value": 2.0,
"hr_rank": 515,
"bb_value": 11.0,
"bb_rank": 457,
"k_value": 15.0,
"k_rank": 530,
"k_per_9_value": 7.6415095,
"k_per_9_rank": 26,
"whip_value": 1.7547,
"whip_rank": null,
"war_value": -0.31,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0028,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0028,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0158,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0009,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9947,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 0,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 77,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260908_TB@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260908 | 20260908_TEX@SEA | away | Cal Quantrill | Cal Quantrill | True | 5.2 | 6.0 | 1 | 0 | 3 | 3 | 1/5 | 1/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.793103448275862,
"WHIP": 1.0655172413793104,
"IP": 96.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.278,
"recent_avg_IP": 6.2,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0225,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 0.9509,
"walk_factor": 0.938,
"homer_factor": 0.9849,
"regression_flag": "neutral",
"k_percent": 18.6,
"bb_percent": 6.1,
"woba": 0.275,
"xwoba": 0.301,
"barrel_percent": 7.6,
"hard_hit_percent": 35.2,
"whiff_percent": 19.8
},
"espn_rank": {
"rank": 104,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "615698",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 4.0,
"R": 4.0,
"H": 20.0,
"BB": 5.0,
"SO": 30.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 455.0
},
"per_game": {
"IP": 6.1,
"ER": 0.8,
"R": 0.8,
"H": 4.0,
"BB": 1.0,
"SO": 6.0,
"HR": 0.4,
"BF": 23.4,
"Pitches": 91.0
},
"rates": {
"ERA": 1.1613,
"WHIP": 0.8065,
"ER_per_IP": 0.12903,
"H_per_IP": 0.64516,
"BB_per_IP": 0.16129,
"SO_per_IP": 0.96774,
"HR_per_IP": 0.06452
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 14.0,
"R": 16.0,
"H": 39.0,
"BB": 11.0,
"SO": 45.0,
"HR": 5.0,
"BF": 200.0,
"Pitches": 762.0
},
"per_game": {
"IP": 5.0,
"ER": 1.4,
"R": 1.6,
"H": 3.9,
"BB": 1.1,
"SO": 4.5,
"HR": 0.5,
"BF": 20.0,
"Pitches": 76.2
},
"rates": {
"ERA": 2.5033,
"WHIP": 0.9934,
"ER_per_IP": 0.27815,
"H_per_IP": 0.77483,
"BB_per_IP": 0.21854,
"SO_per_IP": 0.89404,
"HR_per_IP": 0.09934
}
},
"season": {
"games": 29,
"totals": {
"IP": 96.2,
"ER": 30.0,
"R": 36.0,
"H": 79.0,
"BB": 24.0,
"SO": 73.0,
"HR": 11.0,
"BF": 393.0,
"Pitches": 1494.0
},
"per_game": {
"IP": 3.1,
"ER": 1.0345,
"R": 1.2414,
"H": 2.7241,
"BB": 0.8276,
"SO": 2.5172,
"HR": 0.3793,
"BF": 13.5517,
"Pitches": 51.5172
},
"rates": {
"ERA": 2.7931,
"WHIP": 1.0655,
"ER_per_IP": 0.31034,
"H_per_IP": 0.81724,
"BB_per_IP": 0.24828,
"SO_per_IP": 0.75517,
"HR_per_IP": 0.11379
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.38,
"predicted_H": 4.055,
"predicted_BB": 1.194,
"predicted_SO": 4.822,
"predicted_HR": 0.508,
"predicted_ERA": 2.3313,
"predicted_WHIP": 0.9857
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.38,
"final": 0.8112,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.055,
"final": 2.7959,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.194,
"final": 1.114,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.822,
"final": 5.3075,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.508,
"final": 0.2986,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3313,
"final": 2.3313,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9857,
"final": 0.9857,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 14,
"H": 39,
"BB": 11,
"SO": 45,
"HR": 5,
"ERA": 2.503311258278146,
"WHIP": 0.9933774834437087,
"K9": 8.04635761589404,
"HR9": 0.8940397350993379,
"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-03T00:00:00"
},
"recent_form_boost": 0.7797637216659251,
"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": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "615698",
"player_name": "Cal Quantrill",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 144,
"wins": 71,
"losses": 73,
"win_pct": 0.4931,
"runs_scored": 595.0,
"runs_allowed": 639.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3056,
"avg_runs_scored": 4.1319,
"avg_runs_allowed": 4.4375,
"offense_index": 0.9218,
"defense_index": 1.0101,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.9,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0434
},
"opponent": {
"team": "SEA",
"games": 144,
"wins": 67,
"losses": 77,
"win_pct": 0.4653,
"runs_scored": 569.0,
"runs_allowed": 640.0,
"run_differential": -71.0,
"run_differential_per_game": -0.4931,
"avg_runs_scored": 3.9514,
"avg_runs_allowed": 4.4444,
"offense_index": 0.8815,
"defense_index": 1.0086,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.7,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.16
},
"edges": {
"quality_edge": 0.1166,
"offense_edge": -0.0782,
"opponent_offense_edge": -0.1185,
"defense_strength": 0.0101,
"opponent_defense_weakness": -0.0086,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0097,
"run_prevention": 0.9742,
"strikeout": 1.013
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "615698",
"profile": {
"available": true,
"pitcher_id": "615698",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 310.0,
"k_percent": 18.6,
"bb_percent": 6.1,
"woba": 0.275,
"xwoba": 0.301,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 35.2,
"avg_best_speed": 78.2901,
"avg_hyper_speed": 93.6233,
"whiff_percent": 19.8,
"swing_percent": 48.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3234,
"command_and_miss": -0.3236,
"regression_edge": -0.7429,
"xwoba_edge": 0.2857,
"barrel_edge": -0.1111,
"hard_hit_edge": 0.3857,
"whiff_edge": -0.7429,
"bb_edge": 0.775,
"pitch_design_score": -0.0019
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "615698",
"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.84263114012379,
"release_spin_rate": 1952.7640647104026,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_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.84263114012379,
"release_spin_rate": 1952.7640647104026,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.8426,
"release_spin_rate": 1952.7641,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0019,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0135,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0225,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 0.9509,
"walk_factor": 0.938,
"homer_factor": 0.9849,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "615698",
"espn_id": 39875,
"player_name": "Cal Quantrill",
"team": "TEX",
"role": "pitcher",
"espn_rank": 104,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 104,
"gp_value": 29.0,
"gp_rank": 224,
"gs_value": 12.0,
"gs_rank": 157,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 2.7931,
"era_rank": null,
"w_value": 7.0,
"w_rank": 83,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 96.2,
"ip_rank": 127,
"h_value": 79.0,
"h_rank": 151,
"er_value": 30.0,
"er_rank": 185,
"hr_value": 11.0,
"hr_rank": 144,
"bb_value": 24.0,
"bb_rank": 225,
"k_value": 73.0,
"k_rank": 167,
"k_per_9_value": 6.7965517,
"k_per_9_rank": 35,
"whip_value": 1.0655,
"whip_rank": null,
"war_value": 1.67,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9981,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9981,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.938,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9849,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9509,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260908_TEX@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"
}
} |
| 20260908 | 20260908_TEX@SEA | home | Bryce Miller | Bryce Miller | True | 5.2 | 3.2 | -6 | 1 | 4 | 3 | 2/4 | 2/3 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.013513513513513,
"WHIP": 1.114864864864865,
"IP": 98.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.51,
"recent_avg_IP": 4.933,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3953,
"sample_weight": 1.0,
"run_prevention_factor": 0.9664,
"strikeout_factor": 1.0126,
"walk_factor": 0.946,
"homer_factor": 0.9498,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 6.5,
"woba": 0.303,
"xwoba": 0.283,
"barrel_percent": 7.3,
"hard_hit_percent": 32.7,
"whiff_percent": 25.3
},
"espn_rank": {
"rank": 169,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682243",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 21.0,
"R": 22.0,
"H": 29.0,
"BB": 13.0,
"SO": 21.0,
"HR": 5.0,
"BF": 113.0,
"Pitches": 443.0
},
"per_game": {
"IP": 5.0,
"ER": 4.2,
"R": 4.4,
"H": 5.8,
"BB": 2.6,
"SO": 4.2,
"HR": 1.0,
"BF": 22.6,
"Pitches": 88.6
},
"rates": {
"ERA": 7.6622,
"WHIP": 1.7027,
"ER_per_IP": 0.85135,
"H_per_IP": 1.17568,
"BB_per_IP": 0.52703,
"SO_per_IP": 0.85135,
"HR_per_IP": 0.2027
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 34.0,
"R": 38.0,
"H": 56.0,
"BB": 21.0,
"SO": 41.0,
"HR": 10.0,
"BF": 234.0,
"Pitches": 881.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.8,
"H": 5.6,
"BB": 2.1,
"SO": 4.1,
"HR": 1.0,
"BF": 23.4,
"Pitches": 88.1
},
"rates": {
"ERA": 5.7736,
"WHIP": 1.4528,
"ER_per_IP": 0.64151,
"H_per_IP": 1.0566,
"BB_per_IP": 0.39623,
"SO_per_IP": 0.77358,
"HR_per_IP": 0.18868
}
},
"season": {
"games": 18,
"totals": {
"IP": 98.2,
"ER": 44.0,
"R": 48.0,
"H": 84.0,
"BB": 26.0,
"SO": 95.0,
"HR": 17.0,
"BF": 397.0,
"Pitches": 1529.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4444,
"R": 2.6667,
"H": 4.6667,
"BB": 1.4444,
"SO": 5.2778,
"HR": 0.9444,
"BF": 22.0556,
"Pitches": 84.9444
},
"rates": {
"ERA": 4.0135,
"WHIP": 1.1149,
"ER_per_IP": 0.44595,
"H_per_IP": 0.85135,
"BB_per_IP": 0.26351,
"SO_per_IP": 0.96284,
"HR_per_IP": 0.1723
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.411,
"predicted_H": 5.468,
"predicted_BB": 2.171,
"predicted_SO": 4.521,
"predicted_HR": 0.949,
"predicted_ERA": 5.8863,
"predicted_WHIP": 1.4645
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.411,
"final": 2.3457,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.468,
"final": 3.9357,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.171,
"final": 2.0954,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.521,
"final": 5.1745,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.949,
"final": 0.5297,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8863,
"final": 5.8863,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4645,
"final": 1.4645,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 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": 34,
"H": 56,
"BB": 21,
"SO": 41,
"HR": 10,
"ERA": 5.773584905660377,
"WHIP": 1.4528301886792452,
"K9": 6.962264150943396,
"HR9": 1.6981132075471699,
"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-02T00:00:00"
},
"recent_form_boost": 1.1591558246273146,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682243",
"player_name": "Bryce Miller",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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": 144,
"wins": 67,
"losses": 77,
"win_pct": 0.4653,
"runs_scored": 569.0,
"runs_allowed": 640.0,
"run_differential": -71.0,
"run_differential_per_game": -0.4931,
"avg_runs_scored": 3.9514,
"avg_runs_allowed": 4.4444,
"offense_index": 0.8815,
"defense_index": 1.0086,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.7,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.16
},
"opponent": {
"team": "TEX",
"games": 144,
"wins": 71,
"losses": 73,
"win_pct": 0.4931,
"runs_scored": 595.0,
"runs_allowed": 639.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3056,
"avg_runs_scored": 4.1319,
"avg_runs_allowed": 4.4375,
"offense_index": 0.9218,
"defense_index": 1.0101,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.9,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0434
},
"edges": {
"quality_edge": -0.1166,
"offense_edge": -0.1185,
"opponent_offense_edge": -0.0782,
"defense_strength": 0.0086,
"opponent_defense_weakness": -0.0101,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9987,
"run_prevention": 0.9925,
"strikeout": 1.0028
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682243",
"profile": {
"available": true,
"pitcher_id": "682243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 351.0,
"k_percent": 23.9,
"bb_percent": 6.5,
"woba": 0.303,
"xwoba": 0.283,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 32.7,
"avg_best_speed": 76.8519,
"avg_hyper_speed": 92.8982,
"whiff_percent": 25.3,
"swing_percent": 54.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4721,
"command_and_miss": 0.2721,
"regression_edge": 0.5714,
"xwoba_edge": 0.8,
"barrel_edge": -0.0444,
"hard_hit_edge": 0.7429,
"whiff_edge": 0.0429,
"bb_edge": 0.675,
"pitch_design_score": 0.038
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682243",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 90.55481419586265,
"release_spin_rate": 2136.012184708858,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 90.55481419586265,
"release_spin_rate": 2136.012184708858,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.5548,
"release_spin_rate": 2136.0122,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.038,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2714,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.3953,
"sample_weight": 1.0,
"run_prevention_factor": 0.9664,
"strikeout_factor": 1.0126,
"walk_factor": 0.946,
"homer_factor": 0.9498,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "682243",
"espn_id": 4654313,
"player_name": "Bryce Miller",
"team": "SEA",
"role": "pitcher",
"espn_rank": 169,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 169,
"gp_value": 18.0,
"gp_rank": 412,
"gs_value": 17.0,
"gs_rank": 119,
"qs_value": 3.0,
"qs_rank": 138,
"era_value": 4.0135,
"era_rank": null,
"w_value": 4.0,
"w_rank": 186,
"l_value": 8.0,
"l_rank": 56,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 98.2,
"ip_rank": 124,
"h_value": 84.0,
"h_rank": 134,
"er_value": 44.0,
"er_rank": 133,
"hr_value": 17.0,
"hr_rank": 67,
"bb_value": 26.0,
"bb_rank": 204,
"k_value": 95.0,
"k_rank": 108,
"k_per_9_value": 8.665541,
"k_per_9_rank": 23,
"whip_value": 1.1148,
"whip_rank": null,
"war_value": 1.12,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9664,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9664,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9498,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0126,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260908_TEX@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"
}
} |
| 20260908 | 20260908_TOR@OAK | away | José Soriano | José Soriano | True | 5.2 | 7.0 | 4 | 1 | 2 | 1 | 4/6 | 2/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.519230769230769,
"WHIP": 1.294871794871795,
"IP": 156.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.571,
"recent_avg_IP": 5.667,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.04,
"sample_weight": 1.0,
"run_prevention_factor": 1.0034,
"strikeout_factor": 1.0326,
"walk_factor": 1.03,
"homer_factor": 1.0185,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 10.7,
"woba": 0.296,
"xwoba": 0.325,
"barrel_percent": 7.5,
"hard_hit_percent": 37.8,
"whiff_percent": 29.6
},
"espn_rank": {
"rank": 35,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.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": "667755",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 15.0,
"R": 15.0,
"H": 31.0,
"BB": 10.0,
"SO": 21.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 473.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 6.2,
"BB": 2.0,
"SO": 4.2,
"HR": 0.4,
"BF": 24.6,
"Pitches": 94.6
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.4471,
"ER_per_IP": 0.52941,
"H_per_IP": 1.09412,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.74118,
"HR_per_IP": 0.07059
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 23.0,
"R": 25.0,
"H": 49.0,
"BB": 21.0,
"SO": 40.0,
"HR": 2.0,
"BF": 231.0,
"Pitches": 917.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3,
"R": 2.5,
"H": 4.9,
"BB": 2.1,
"SO": 4.0,
"HR": 0.2,
"BF": 23.1,
"Pitches": 91.7
},
"rates": {
"ERA": 3.6964,
"WHIP": 1.25,
"ER_per_IP": 0.41071,
"H_per_IP": 0.875,
"BB_per_IP": 0.375,
"SO_per_IP": 0.71429,
"HR_per_IP": 0.03571
}
},
"season": {
"games": 28,
"totals": {
"IP": 156.0,
"ER": 61.0,
"R": 66.0,
"H": 132.0,
"BB": 70.0,
"SO": 151.0,
"HR": 14.0,
"BF": 654.0,
"Pitches": 2609.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1786,
"R": 2.3571,
"H": 4.7143,
"BB": 2.5,
"SO": 5.3929,
"HR": 0.5,
"BF": 23.3571,
"Pitches": 93.1786
},
"rates": {
"ERA": 3.5192,
"WHIP": 1.2949,
"ER_per_IP": 0.39103,
"H_per_IP": 0.84615,
"BB_per_IP": 0.44872,
"SO_per_IP": 0.96795,
"HR_per_IP": 0.08974
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.642,
"predicted_H": 5.489,
"predicted_BB": 2.146,
"predicted_SO": 4.544,
"predicted_HR": 0.425,
"predicted_ERA": 4.1959,
"predicted_WHIP": 1.3473
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.642,
"final": 1.9622,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.489,
"final": 4.8725,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.146,
"final": 2.0856,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.544,
"final": 5.1468,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.425,
"final": 0.249,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1959,
"final": 4.1959,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3473,
"final": 1.3473,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 23,
"H": 49,
"BB": 21,
"SO": 40,
"HR": 2,
"ERA": 3.6964285714285716,
"WHIP": 1.25,
"K9": 6.428571428571429,
"HR9": 0.32142857142857145,
"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-03T00:00:00"
},
"recent_form_boost": 0.9204049823092552,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "667755",
"player_name": "Jos\u00e9 Soriano",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 585.0,
"runs_allowed": 624.0,
"run_differential": -39.0,
"run_differential_per_game": -0.269,
"avg_runs_scored": 4.0345,
"avg_runs_allowed": 4.3034,
"offense_index": 0.9001,
"defense_index": 1.0416,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 3.0,
"run_differential": 26.0
},
"available": true,
"quality_score": 0.0341
},
"opponent": {
"team": "OAK",
"games": 145,
"wins": 58,
"losses": 87,
"win_pct": 0.4,
"runs_scored": 637.0,
"runs_allowed": 824.0,
"run_differential": -187.0,
"run_differential_per_game": -1.2897,
"avg_runs_scored": 4.3931,
"avg_runs_allowed": 5.6828,
"offense_index": 0.9801,
"defense_index": 0.7888,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.0,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.2432
},
"edges": {
"quality_edge": 0.2773,
"offense_edge": -0.0999,
"opponent_offense_edge": -0.0199,
"defense_strength": 0.0416,
"opponent_defense_weakness": 0.2112,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0131,
"run_prevention": 0.9788,
"strikeout": 1.0099
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "667755",
"profile": {
"available": true,
"pitcher_id": "667755",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 572.0,
"k_percent": 23.1,
"bb_percent": 10.7,
"woba": 0.296,
"xwoba": 0.325,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.7084,
"avg_hyper_speed": 94.0976,
"whiff_percent": 29.6,
"swing_percent": 46.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0503,
"command_and_miss": 0.2257,
"regression_edge": -0.8286,
"xwoba_edge": -0.4,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.0143,
"whiff_edge": 0.6571,
"bb_edge": -0.375,
"pitch_design_score": 0.1538
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "667755",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.62248350722385,
"release_spin_rate": 2056.682557815389,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.62248350722385,
"release_spin_rate": 2056.682557815389,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.6225,
"release_spin_rate": 2056.6826,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1538,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0985,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.04,
"sample_weight": 1.0,
"run_prevention_factor": 1.0034,
"strikeout_factor": 1.0326,
"walk_factor": 1.03,
"homer_factor": 1.0185,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "667755",
"espn_id": 40973,
"player_name": "Jose Soriano",
"team": "TOR",
"role": "pitcher",
"espn_rank": 35,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 35,
"gp_value": 28.0,
"gp_rank": 248,
"gs_value": 28.0,
"gs_rank": 17,
"qs_value": 10.0,
"qs_rank": 56,
"era_value": 3.5192,
"era_rank": 22.0,
"w_value": 11.0,
"w_rank": 21,
"l_value": 7.0,
"l_rank": 84,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 156.0,
"ip_rank": 30,
"h_value": 132.0,
"h_rank": 50,
"er_value": 61.0,
"er_rank": 60,
"hr_value": 14.0,
"hr_rank": 106,
"bb_value": 70.0,
"bb_rank": 4,
"k_value": 151.0,
"k_rank": 30,
"k_per_9_value": 8.711538,
"k_per_9_rank": 26,
"whip_value": 1.2948,
"whip_rank": 36.0,
"war_value": 2.97,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0034,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0034,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.03,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0185,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0326,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260908_TOR@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"
}
} |
| 20260908 | 20260908_TOR@OAK | home | Jack Perkins | Jack Perkins | True | 4.0 | 5.0 | 3 | 5 | 4 | -1 | 7/7 | 4/0 | 1/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.498305084745763,
"WHIP": 1.535593220338983,
"IP": 98.1,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 4.513,
"recent_avg_IP": 4.267,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0631,
"sample_weight": 1.0,
"run_prevention_factor": 0.9946,
"strikeout_factor": 1.0337,
"walk_factor": 1.024,
"homer_factor": 1.0235,
"regression_flag": "positive_pitcher_regression",
"k_percent": 25.7,
"bb_percent": 10.4,
"woba": 0.359,
"xwoba": 0.31,
"barrel_percent": 8.6,
"hard_hit_percent": 37.5,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 849,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.792,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7983,
"prior_weight": 0.2017
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678022",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 11.0,
"R": 15.0,
"H": 24.0,
"BB": 16.0,
"SO": 24.0,
"HR": 3.0,
"BF": 103.0,
"Pitches": 407.0
},
"per_game": {
"IP": 4.1,
"ER": 2.2,
"R": 3.0,
"H": 4.8,
"BB": 3.2,
"SO": 4.8,
"HR": 0.6,
"BF": 20.6,
"Pitches": 81.4
},
"rates": {
"ERA": 4.5692,
"WHIP": 1.8462,
"ER_per_IP": 0.50769,
"H_per_IP": 1.10769,
"BB_per_IP": 0.73846,
"SO_per_IP": 1.10769,
"HR_per_IP": 0.13846
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 30.0,
"R": 34.0,
"H": 46.0,
"BB": 26.0,
"SO": 46.0,
"HR": 10.0,
"BF": 201.0,
"Pitches": 791.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.4,
"H": 4.6,
"BB": 2.6,
"SO": 4.6,
"HR": 1.0,
"BF": 20.1,
"Pitches": 79.1
},
"rates": {
"ERA": 6.1832,
"WHIP": 1.6489,
"ER_per_IP": 0.68702,
"H_per_IP": 1.05344,
"BB_per_IP": 0.59542,
"SO_per_IP": 1.05344,
"HR_per_IP": 0.22901
}
},
"season": {
"games": 33,
"totals": {
"IP": 98.1,
"ER": 71.0,
"R": 77.0,
"H": 104.0,
"BB": 47.0,
"SO": 116.0,
"HR": 18.0,
"BF": 452.0,
"Pitches": 1759.0
},
"per_game": {
"IP": 3.0,
"ER": 2.1515,
"R": 2.3333,
"H": 3.1515,
"BB": 1.4242,
"SO": 3.5152,
"HR": 0.5455,
"BF": 13.697,
"Pitches": 53.303
},
"rates": {
"ERA": 6.4983,
"WHIP": 1.5356,
"ER_per_IP": 0.72203,
"H_per_IP": 1.05763,
"BB_per_IP": 0.47797,
"SO_per_IP": 1.17966,
"HR_per_IP": 0.18305
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.433,
"predicted_H": 4.357,
"predicted_BB": 2.402,
"predicted_SO": 4.41,
"predicted_HR": 0.711,
"predicted_ERA": 5.3142,
"predicted_WHIP": 1.6404
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4352,
"form_weight": 0.5648,
"form_reliability": 0.7983,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.792,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7983,
"prior_weight": 0.2017
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.433,
"final": 3.5502,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.357,
"final": 5.5073,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.402,
"final": 3.0975,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 4.41,
"final": 2.9259,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.711,
"final": 1.272,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3142,
"final": 5.3142,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6404,
"final": 1.6404,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.2,
"ER": 30,
"H": 46,
"BB": 26,
"SO": 46,
"HR": 10,
"ERA": 6.183206106870229,
"WHIP": 1.6488549618320612,
"K9": 9.480916030534353,
"HR9": 2.0610687022900764,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 1.2101388290922432,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 4.0,
"predicted_SO": 1.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.792,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7983,
"prior_weight": 0.2017
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 4,
"predicted_SO": 1,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678022",
"player_name": "Jack Perkins",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 4.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 145,
"wins": 58,
"losses": 87,
"win_pct": 0.4,
"runs_scored": 637.0,
"runs_allowed": 824.0,
"run_differential": -187.0,
"run_differential_per_game": -1.2897,
"avg_runs_scored": 4.3931,
"avg_runs_allowed": 5.6828,
"offense_index": 0.9801,
"defense_index": 0.7888,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.0,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.2432
},
"opponent": {
"team": "TOR",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 585.0,
"runs_allowed": 624.0,
"run_differential": -39.0,
"run_differential_per_game": -0.269,
"avg_runs_scored": 4.0345,
"avg_runs_allowed": 4.3034,
"offense_index": 0.9001,
"defense_index": 1.0416,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 3.0,
"run_differential": 26.0
},
"available": true,
"quality_score": 0.0341
},
"edges": {
"quality_edge": -0.2773,
"offense_edge": -0.0199,
"opponent_offense_edge": -0.0999,
"defense_strength": -0.2112,
"opponent_defense_weakness": -0.0416,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9866,
"run_prevention": 1.019,
"strikeout": 0.9997
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678022",
"profile": {
"available": true,
"pitcher_id": "678022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 379.0,
"k_percent": 25.7,
"bb_percent": 10.4,
"woba": 0.359,
"xwoba": 0.31,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 37.5,
"avg_best_speed": 78.8186,
"avg_hyper_speed": 93.6076,
"whiff_percent": 27.2,
"swing_percent": 47.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2826,
"command_and_miss": 0.2879,
"regression_edge": 1.4,
"xwoba_edge": 0.0286,
"barrel_edge": -0.3333,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.3143,
"bb_edge": -0.3,
"pitch_design_score": 0.0808
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 91.31862708436176,
"release_spin_rate": 2227.278752223051,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 91.31862708436176,
"release_spin_rate": 2227.278752223051,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.3186,
"release_spin_rate": 2227.2788,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0808,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5769,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0631,
"sample_weight": 1.0,
"run_prevention_factor": 0.9946,
"strikeout_factor": 1.0337,
"walk_factor": 1.024,
"homer_factor": 1.0235,
"woba_minus_xwoba": 0.049,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "678022",
"espn_id": 4418686,
"player_name": "Jack Perkins",
"team": "ATH",
"role": "pitcher",
"espn_rank": 849,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 849,
"gp_value": 33.0,
"gp_rank": 201,
"gs_value": 13.0,
"gs_rank": 152,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 6.4983,
"era_rank": null,
"w_value": 3.0,
"w_rank": 242,
"l_value": 10.0,
"l_rank": 17,
"sv_value": 3.0,
"sv_rank": 66,
"hld_value": 2.0,
"hld_rank": 227,
"ip_value": 98.1,
"ip_rank": 125,
"h_value": 104.0,
"h_rank": 110,
"er_value": 71.0,
"er_rank": 22,
"hr_value": 18.0,
"hr_rank": 53,
"bb_value": 47.0,
"bb_rank": 49,
"k_value": 116.0,
"k_rank": 76,
"k_per_9_value": 10.616949,
"k_per_9_rank": 16,
"whip_value": 1.5355,
"whip_rank": null,
"war_value": -1.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9946,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9946,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.024,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0235,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0337,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 4,
"predicted_SO": 1,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260908_TOR@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"
}
} |
| 20260908 | 20260908_WAS@SD | away | Riley Cornelio | Riley Cornelio | True | 3.2 | 3.0 | -2 | 2 | 0 | -2 | 5/0 | 0/0 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.955882352941176,
"WHIP": 1.8088235294117647,
"IP": 22.2,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0488,
"sample_weight": 0.45,
"run_prevention_factor": 1.0041,
"strikeout_factor": 1.019,
"walk_factor": 1.09,
"homer_factor": 1.0453,
"regression_flag": "neutral",
"k_percent": 21.5,
"bb_percent": 19.6,
"woba": 0.339,
"xwoba": 0.314,
"barrel_percent": 9.5,
"hard_hit_percent": 47.6,
"whiff_percent": 32.9
},
"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": 4.562,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4771,
"prior_weight": 0.5229
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683000",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.0,
"ER": 4.0,
"R": 8.0,
"H": 4.0,
"BB": 8.0,
"SO": 6.0,
"HR": 1.0,
"BF": 35.0,
"Pitches": 159.0
},
"per_game": {
"IP": 1.2,
"ER": 0.8,
"R": 1.6,
"H": 0.8,
"BB": 1.6,
"SO": 1.2,
"HR": 0.2,
"BF": 7.0,
"Pitches": 31.8
},
"rates": {
"ERA": 4.5,
"WHIP": 1.5,
"ER_per_IP": 0.5,
"H_per_IP": 0.5,
"BB_per_IP": 1.0,
"SO_per_IP": 0.75,
"HR_per_IP": 0.125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 18.2,
"ER": 12.0,
"R": 16.0,
"H": 16.0,
"BB": 14.0,
"SO": 21.0,
"HR": 2.0,
"BF": 84.0,
"Pitches": 371.0
},
"per_game": {
"IP": 2.0,
"ER": 1.2,
"R": 1.6,
"H": 1.6,
"BB": 1.4,
"SO": 2.1,
"HR": 0.2,
"BF": 8.4,
"Pitches": 37.1
},
"rates": {
"ERA": 5.7857,
"WHIP": 1.6071,
"ER_per_IP": 0.64286,
"H_per_IP": 0.85714,
"BB_per_IP": 0.75,
"SO_per_IP": 1.125,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 12,
"totals": {
"IP": 22.2,
"ER": 15.0,
"R": 20.0,
"H": 20.0,
"BB": 21.0,
"SO": 23.0,
"HR": 2.0,
"BF": 107.0,
"Pitches": 457.0
},
"per_game": {
"IP": 2.0,
"ER": 1.25,
"R": 1.6667,
"H": 1.6667,
"BB": 1.75,
"SO": 1.9167,
"HR": 0.1667,
"BF": 8.9167,
"Pitches": 38.0833
},
"rates": {
"ERA": 5.9559,
"WHIP": 1.8088,
"ER_per_IP": 0.66176,
"H_per_IP": 0.88235,
"BB_per_IP": 0.92647,
"SO_per_IP": 1.01471,
"HR_per_IP": 0.08824
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.886,
"predicted_H": 2.95,
"predicted_BB": 2.178,
"predicted_SO": 3.278,
"predicted_HR": 0.454,
"predicted_ERA": 4.8535,
"predicted_WHIP": 1.4664
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5709,
"form_weight": 0.4291,
"form_reliability": 0.4771,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.562,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4771,
"prior_weight": 0.5229
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.886,
"final": 1.9511,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.95,
"final": 4.1204,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.178,
"final": 0.9345,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.278,
"final": 2.5484,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.454,
"final": 1.9076,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8535,
"final": 4.8535,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4664,
"final": 1.4664,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 18.2,
"ER": 12,
"H": 16,
"BB": 14,
"SO": 21,
"HR": 2,
"ERA": 5.7857142857142865,
"WHIP": 1.6071428571428574,
"K9": 10.125000000000002,
"HR9": 0.9642857142857144,
"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-02T00:00:00"
},
"recent_form_boost": 1.100423782772902,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.562,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4771,
"prior_weight": 0.5229
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 3
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683000",
"player_name": "Riley Cornelio",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 3.2,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 3.2,
"delta": -1.8,
"percent_delta": -0.36,
"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.0,
"after": 3.2,
"delta": -1.8,
"percent_delta": -0.36,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 3.2,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 3.2,
"delta": -1.8,
"percent_delta": -0.36,
"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.0,
"after": 3.2,
"delta": -1.8,
"percent_delta": -0.36,
"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": 146,
"wins": 67,
"losses": 79,
"win_pct": 0.4589,
"runs_scored": 750.0,
"runs_allowed": 742.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0548,
"avg_runs_scored": 5.137,
"avg_runs_allowed": 5.0822,
"offense_index": 1.146,
"defense_index": 0.882,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.0,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0632
},
"opponent": {
"team": "SD",
"games": 144,
"wins": 76,
"losses": 68,
"win_pct": 0.5278,
"runs_scored": 605.0,
"runs_allowed": 596.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0625,
"avg_runs_scored": 4.2014,
"avg_runs_allowed": 4.1389,
"offense_index": 0.9373,
"defense_index": 1.083,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.4,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0037
},
"edges": {
"quality_edge": -0.0595,
"offense_edge": 0.146,
"opponent_offense_edge": -0.0627,
"defense_strength": -0.118,
"opponent_defense_weakness": -0.083,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9966,
"run_prevention": 1.0047,
"strikeout": 1.0032
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683000",
"profile": {
"available": true,
"pitcher_id": "683000",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 95.0,
"k_percent": 21.5,
"bb_percent": 19.6,
"woba": 0.339,
"xwoba": 0.314,
"sweet_spot_percent": 30.2,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 47.6,
"avg_best_speed": 75.3288,
"avg_hyper_speed": 94.1955,
"whiff_percent": 32.9,
"swing_percent": 47.9
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2584,
"command_and_miss": -0.1371,
"regression_edge": 0.7143,
"xwoba_edge": -0.0857,
"barrel_edge": -0.5333,
"hard_hit_edge": -1.3857,
"whiff_edge": 1.1286,
"bb_edge": -2.5,
"pitch_design_score": 0.0067
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683000",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 31,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 31,
"pitch_usage": 0.0,
"release_speed": 89.99665884619792,
"release_spin_rate": 2321.8048439957524,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 31,
"pitch_usage": 0.0,
"release_speed": 89.99665884619792,
"release_spin_rate": 2321.8048439957524,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.9967,
"release_spin_rate": 2321.8048,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0067,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0481,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0488,
"sample_weight": 0.45,
"run_prevention_factor": 1.0041,
"strikeout_factor": 1.019,
"walk_factor": 1.09,
"homer_factor": 1.0453,
"woba_minus_xwoba": 0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "683000",
"espn_id": 4622146,
"player_name": "Riley Cornelio",
"team": "WSH",
"role": "pitcher",
"espn_rank": 806,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 806,
"gp_value": 12.0,
"gp_rank": 493,
"gs_value": 0.0,
"gs_rank": 362,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 5.9558,
"era_rank": null,
"w_value": 2.0,
"w_rank": 311,
"l_value": 2.0,
"l_rank": 325,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 22.2,
"ip_rank": 489,
"h_value": 20.0,
"h_rank": 512,
"er_value": 15.0,
"er_rank": 414,
"hr_value": 2.0,
"hr_rank": 515,
"bb_value": 21.0,
"bb_rank": 272,
"k_value": 23.0,
"k_rank": 459,
"k_per_9_value": 9.132353,
"k_per_9_rank": 25,
"whip_value": 1.8088,
"whip_rank": null,
"war_value": -0.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0018,
"adjusted": 3
},
"predicted_H": {
"original": 3.0,
"factor": 1.0018,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0405,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0204,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0086,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 17,
"Pitches": 71,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260908_WAS@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"
}
} |
| 20260908 | 20260908_WAS@SD | home | Casey Mize | Casey Mize | True | 5.0 | 5.2 | 2 | 0 | 3 | 3 | 2/4 | 3/1 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6422287390029324,
"WHIP": 1.1173020527859236,
"IP": 113.2,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.167,
"recent_avg_IP": 4.733,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1894,
"sample_weight": 1.0,
"run_prevention_factor": 0.9839,
"strikeout_factor": 0.9914,
"walk_factor": 0.936,
"homer_factor": 1.0003,
"regression_flag": "neutral",
"k_percent": 21.6,
"bb_percent": 6.0,
"woba": 0.293,
"xwoba": 0.288,
"barrel_percent": 8.1,
"hard_hit_percent": 38.3,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 84,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663554",
"report_date": "20260908",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 12.0,
"R": 17.0,
"H": 23.0,
"BB": 6.0,
"SO": 14.0,
"HR": 7.0,
"BF": 101.0,
"Pitches": 378.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 3.4,
"H": 4.6,
"BB": 1.2,
"SO": 2.8,
"HR": 1.4,
"BF": 20.2,
"Pitches": 75.6
},
"rates": {
"ERA": 4.5634,
"WHIP": 1.2254,
"ER_per_IP": 0.50704,
"H_per_IP": 0.97183,
"BB_per_IP": 0.25352,
"SO_per_IP": 0.59155,
"HR_per_IP": 0.29577
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 27.0,
"R": 33.0,
"H": 50.0,
"BB": 14.0,
"SO": 32.0,
"HR": 9.0,
"BF": 211.0,
"Pitches": 805.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 3.3,
"H": 5.0,
"BB": 1.4,
"SO": 3.2,
"HR": 0.9,
"BF": 21.1,
"Pitches": 80.5
},
"rates": {
"ERA": 4.9932,
"WHIP": 1.3151,
"ER_per_IP": 0.55479,
"H_per_IP": 1.0274,
"BB_per_IP": 0.28767,
"SO_per_IP": 0.65753,
"HR_per_IP": 0.18493
}
},
"season": {
"games": 22,
"totals": {
"IP": 113.2,
"ER": 46.0,
"R": 52.0,
"H": 99.0,
"BB": 28.0,
"SO": 100.0,
"HR": 13.0,
"BF": 464.0,
"Pitches": 1773.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0909,
"R": 2.3636,
"H": 4.5,
"BB": 1.2727,
"SO": 4.5455,
"HR": 0.5909,
"BF": 21.0909,
"Pitches": 80.5909
},
"rates": {
"ERA": 3.6422,
"WHIP": 1.1173,
"ER_per_IP": 0.40469,
"H_per_IP": 0.87097,
"BB_per_IP": 0.24633,
"SO_per_IP": 0.87977,
"HR_per_IP": 0.11437
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.479,
"predicted_H": 4.791,
"predicted_BB": 1.401,
"predicted_SO": 3.561,
"predicted_HR": 1.021,
"predicted_ERA": 4.5241,
"predicted_WHIP": 1.2555
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.479,
"final": 1.4174,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.791,
"final": 3.5958,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.401,
"final": 2.0858,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.561,
"final": 3.749,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.021,
"final": 0.5838,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5241,
"final": 4.5241,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2555,
"final": 1.2555,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.2,
"ER": 27,
"H": 50,
"BB": 14,
"SO": 32,
"HR": 9,
"ERA": 4.993150684931508,
"WHIP": 1.315068493150685,
"K9": 5.917808219178084,
"HR9": 1.664383561643836,
"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-02T00:00:00"
},
"recent_form_boost": 1.0679129324071026,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663554",
"player_name": "Casey Mize",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 144,
"wins": 76,
"losses": 68,
"win_pct": 0.5278,
"runs_scored": 605.0,
"runs_allowed": 596.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0625,
"avg_runs_scored": 4.2014,
"avg_runs_allowed": 4.1389,
"offense_index": 0.9373,
"defense_index": 1.083,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.4,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0037
},
"opponent": {
"team": "WAS",
"games": 146,
"wins": 67,
"losses": 79,
"win_pct": 0.4589,
"runs_scored": 750.0,
"runs_allowed": 742.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0548,
"avg_runs_scored": 5.137,
"avg_runs_allowed": 5.0822,
"offense_index": 1.146,
"defense_index": 0.882,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.0,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0632
},
"edges": {
"quality_edge": 0.0595,
"offense_edge": -0.0627,
"opponent_offense_edge": 0.146,
"defense_strength": 0.083,
"opponent_defense_weakness": 0.118,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.999,
"run_prevention": 1.0121,
"strikeout": 0.9901
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663554",
"profile": {
"available": true,
"pitcher_id": "663554",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 406.0,
"k_percent": 21.6,
"bb_percent": 6.0,
"woba": 0.293,
"xwoba": 0.288,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.3,
"avg_best_speed": 79.1467,
"avg_hyper_speed": 93.8959,
"whiff_percent": 23.9,
"swing_percent": 48.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2744,
"command_and_miss": 0.0793,
"regression_edge": 0.1429,
"xwoba_edge": 0.6571,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.1571,
"bb_edge": 0.8,
"pitch_design_score": 0.0096
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663554",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.04851401520826,
"release_spin_rate": 2095.774411866807,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.04851401520826,
"release_spin_rate": 2095.774411866807,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": 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.0485,
"release_spin_rate": 2095.7744,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0096,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0689,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1894,
"sample_weight": 1.0,
"run_prevention_factor": 0.9839,
"strikeout_factor": 0.9914,
"walk_factor": 0.936,
"homer_factor": 1.0003,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663554",
"espn_id": 41167,
"player_name": "Casey Mize",
"team": "SD",
"role": "pitcher",
"espn_rank": 84,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 84,
"gp_value": 22.0,
"gp_rank": 360,
"gs_value": 22.0,
"gs_rank": 85,
"qs_value": 10.0,
"qs_rank": 56,
"era_value": 3.6422,
"era_rank": null,
"w_value": 5.0,
"w_rank": 143,
"l_value": 9.0,
"l_rank": 28,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 113.2,
"ip_rank": 103,
"h_value": 99.0,
"h_rank": 117,
"er_value": 46.0,
"er_rank": 122,
"hr_value": 13.0,
"hr_rank": 120,
"bb_value": 28.0,
"bb_rank": 183,
"k_value": 100.0,
"k_rank": 99,
"k_per_9_value": 7.917888,
"k_per_9_rank": 25,
"whip_value": 1.1173,
"whip_rank": null,
"war_value": 1.89,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9839,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9839,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0003,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9914,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260908_WAS@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"
}
} |