| 20260930 | 20260930_BOS@NYY | away | Sonny Gray | Sonny Gray | True | 6.0 | 4.2 | -4 | 3 | 2 | -1 | 10/6 | 0/0 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7159763313609466,
"WHIP": 1.1479289940828403,
"IP": 169.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.828,
"recent_avg_IP": 6.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0518,
"sample_weight": 1.0,
"run_prevention_factor": 0.9956,
"strikeout_factor": 0.9863,
"walk_factor": 0.95,
"homer_factor": 0.9892,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.7,
"woba": 0.293,
"xwoba": 0.303,
"barrel_percent": 6.9,
"hard_hit_percent": 38.3,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543243",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 23.0,
"BB": 10.0,
"SO": 26.0,
"HR": 1.0,
"BF": 120.0,
"Pitches": 454.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 4.6,
"BB": 2.0,
"SO": 5.2,
"HR": 0.2,
"BF": 24.0,
"Pitches": 90.8
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.0879,
"ER_per_IP": 0.26374,
"H_per_IP": 0.75824,
"BB_per_IP": 0.32967,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.03297
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 18.0,
"R": 18.0,
"H": 52.0,
"BB": 18.0,
"SO": 56.0,
"HR": 4.0,
"BF": 252.0,
"Pitches": 916.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 5.2,
"BB": 1.8,
"SO": 5.6,
"HR": 0.4,
"BF": 25.2,
"Pitches": 91.6
},
"rates": {
"ERA": 2.5989,
"WHIP": 1.123,
"ER_per_IP": 0.28877,
"H_per_IP": 0.83422,
"BB_per_IP": 0.28877,
"SO_per_IP": 0.8984,
"HR_per_IP": 0.06417
}
},
"season": {
"games": 29,
"totals": {
"IP": 169.0,
"ER": 51.0,
"R": 52.0,
"H": 148.0,
"BB": 46.0,
"SO": 149.0,
"HR": 16.0,
"BF": 683.0,
"Pitches": 2474.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7586,
"R": 1.7931,
"H": 5.1034,
"BB": 1.5862,
"SO": 5.1379,
"HR": 0.5517,
"BF": 23.5517,
"Pitches": 85.3103
},
"rates": {
"ERA": 2.716,
"WHIP": 1.1479,
"ER_per_IP": 0.30178,
"H_per_IP": 0.87574,
"BB_per_IP": 0.27219,
"SO_per_IP": 0.88166,
"HR_per_IP": 0.09467
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.899,
"predicted_H": 5.041,
"predicted_BB": 1.902,
"predicted_SO": 5.349,
"predicted_HR": 0.422,
"predicted_ERA": 2.8289,
"predicted_WHIP": 1.149
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.899,
"final": 2.7649,
"source": "model_form_blend"
},
"predicted_H": {
"model": 11.0,
"form": 5.041,
"final": 7.497,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.902,
"final": 1.1181,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.349,
"final": 4.793,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.422,
"final": 1.0724,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8289,
"final": 2.8289,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.149,
"final": 1.149,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.1,
"ER": 18,
"H": 52,
"BB": 18,
"SO": 56,
"HR": 4,
"ERA": 2.5989304812834226,
"WHIP": 1.1229946524064172,
"K9": 8.085561497326204,
"HR9": 0.5775401069518717,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.781067460270328,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 11.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 11,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543243",
"player_name": "Sonny Gray",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 11.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 11.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 10.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 10.0,
"delta": -1.0,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 11.0,
"after": 10.0,
"delta": -1.0,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 10.0,
"delta": -1.0,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 162,
"wins": 87,
"losses": 75,
"win_pct": 0.537,
"runs_scored": 689.0,
"runs_allowed": 611.0,
"run_differential": 78.0,
"run_differential_per_game": 0.4815,
"avg_runs_scored": 4.2531,
"avg_runs_allowed": 3.7716,
"offense_index": 0.9464,
"defense_index": 1.1915,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.1,
"avg_runs_allowed": 2.5,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0904
},
"opponent": {
"team": "NYY",
"games": 161,
"wins": 93,
"losses": 68,
"win_pct": 0.5776,
"runs_scored": 739.0,
"runs_allowed": 601.0,
"run_differential": 138.0,
"run_differential_per_game": 0.8571,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.7329,
"offense_index": 1.0214,
"defense_index": 1.2039,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.5,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1709
},
"edges": {
"quality_edge": -0.0805,
"offense_edge": -0.0536,
"opponent_offense_edge": 0.0214,
"defense_strength": 0.1915,
"opponent_defense_weakness": -0.2039,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0017,
"run_prevention": 0.9883,
"strikeout": 0.9959
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543243",
"profile": {
"available": true,
"pitcher_id": "543243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 654.0,
"k_percent": 21.8,
"bb_percent": 6.7,
"woba": 0.293,
"xwoba": 0.303,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 38.3,
"avg_best_speed": 78.8696,
"avg_hyper_speed": 93.8901,
"whiff_percent": 23.1,
"swing_percent": 47.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1629,
"command_and_miss": 0.0007,
"regression_edge": -0.2857,
"xwoba_edge": 0.2571,
"barrel_edge": 0.0667,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.3,
"bb_edge": 0.625,
"pitch_design_score": -0.1371
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543243",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 87.41606766331542,
"release_spin_rate": 2505.1386844908457,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 87.41606766331542,
"release_spin_rate": 2505.1386844908457,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4161,
"release_spin_rate": 2505.1387,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1371,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9794,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0518,
"sample_weight": 1.0,
"run_prevention_factor": 0.9956,
"strikeout_factor": 0.9863,
"walk_factor": 0.95,
"homer_factor": 0.9892,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543243",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9956,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9956,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.95,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9892,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9863,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 10,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260930_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260930 | 20260930_BOS@NYY | home | Max Fried | Max Fried | True | 6.0 | 6.0 | 0 | 0 | 1 | 1 | 2/3 | 1/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.79585798816568,
"WHIP": 0.9940828402366864,
"IP": 112.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.633,
"recent_avg_IP": 5.267,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8584,
"sample_weight": 1.0,
"run_prevention_factor": 0.927,
"strikeout_factor": 1.0097,
"walk_factor": 0.968,
"homer_factor": 0.8118,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 7.6,
"woba": 0.245,
"xwoba": 0.246,
"barrel_percent": 2.4,
"hard_hit_percent": 29.8,
"whiff_percent": 25.0
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 112.2,
"season_ERA": 2.796,
"season_WHIP": 0.994,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608331",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 8.0,
"R": 8.0,
"H": 20.0,
"BB": 6.0,
"SO": 25.0,
"HR": 2.0,
"BF": 102.0,
"Pitches": 400.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.0,
"BB": 1.2,
"SO": 5.0,
"HR": 0.4,
"BF": 20.4,
"Pitches": 80.0
},
"rates": {
"ERA": 2.7342,
"WHIP": 0.9873,
"ER_per_IP": 0.3038,
"H_per_IP": 0.75949,
"BB_per_IP": 0.22785,
"SO_per_IP": 0.94937,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 13.0,
"R": 13.0,
"H": 36.0,
"BB": 14.0,
"SO": 54.0,
"HR": 3.0,
"BF": 194.0,
"Pitches": 779.0
},
"per_game": {
"IP": 5.0,
"ER": 1.3,
"R": 1.3,
"H": 3.6,
"BB": 1.4,
"SO": 5.4,
"HR": 0.3,
"BF": 19.4,
"Pitches": 77.9
},
"rates": {
"ERA": 2.2941,
"WHIP": 0.9804,
"ER_per_IP": 0.2549,
"H_per_IP": 0.70588,
"BB_per_IP": 0.27451,
"SO_per_IP": 1.05882,
"HR_per_IP": 0.05882
}
},
"season": {
"games": 20,
"totals": {
"IP": 112.2,
"ER": 35.0,
"R": 35.0,
"H": 79.0,
"BB": 33.0,
"SO": 104.0,
"HR": 4.0,
"BF": 434.0,
"Pitches": 1696.0
},
"per_game": {
"IP": 5.2,
"ER": 1.75,
"R": 1.75,
"H": 3.95,
"BB": 1.65,
"SO": 5.2,
"HR": 0.2,
"BF": 21.7,
"Pitches": 84.8
},
"rates": {
"ERA": 2.7959,
"WHIP": 0.9941,
"ER_per_IP": 0.31065,
"H_per_IP": 0.70118,
"BB_per_IP": 0.2929,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.0355
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.807,
"predicted_H": 4.233,
"predicted_BB": 1.527,
"predicted_SO": 5.281,
"predicted_HR": 0.43,
"predicted_ERA": 2.997,
"predicted_WHIP": 1.0614
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.807,
"final": 1.0219,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.233,
"final": 3.2628,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.527,
"final": 1.298,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.281,
"final": 4.7244,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.43,
"final": 0.2432,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.997,
"final": 2.997,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0614,
"final": 1.0614,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.0,
"ER": 13,
"H": 36,
"BB": 14,
"SO": 54,
"HR": 3,
"ERA": 2.2941176470588234,
"WHIP": 0.9803921568627451,
"K9": 9.529411764705882,
"HR9": 0.5294117647058824,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-22T00:00:00"
},
"recent_form_boost": 0.7432109540314689,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608331",
"player_name": "Max Fried",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 161,
"wins": 93,
"losses": 68,
"win_pct": 0.5776,
"runs_scored": 739.0,
"runs_allowed": 601.0,
"run_differential": 138.0,
"run_differential_per_game": 0.8571,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.7329,
"offense_index": 1.0214,
"defense_index": 1.2039,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.5,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1709
},
"opponent": {
"team": "BOS",
"games": 162,
"wins": 87,
"losses": 75,
"win_pct": 0.537,
"runs_scored": 689.0,
"runs_allowed": 611.0,
"run_differential": 78.0,
"run_differential_per_game": 0.4815,
"avg_runs_scored": 4.2531,
"avg_runs_allowed": 3.7716,
"offense_index": 0.9464,
"defense_index": 1.1915,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.1,
"avg_runs_allowed": 2.5,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0904
},
"edges": {
"quality_edge": 0.0805,
"offense_edge": 0.0214,
"opponent_offense_edge": -0.0536,
"defense_strength": 0.2039,
"opponent_defense_weakness": -0.1915,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0115,
"run_prevention": 0.967,
"strikeout": 1.0067
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608331",
"profile": {
"available": true,
"pitcher_id": "608331",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 380.0,
"k_percent": 24.0,
"bb_percent": 7.6,
"woba": 0.245,
"xwoba": 0.246,
"sweet_spot_percent": 28.5,
"barrel_batted_rate": 2.4,
"hard_hit_percent": 29.8,
"avg_best_speed": 74.5561,
"avg_hyper_speed": 92.6087,
"whiff_percent": 25.0,
"swing_percent": 46.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4628,
"command_and_miss": 0.1921,
"regression_edge": -0.0286,
"xwoba_edge": 1.8857,
"barrel_edge": 1.0667,
"hard_hit_edge": 1.1571,
"whiff_edge": -0.0286,
"bb_edge": 0.4,
"pitch_design_score": -0.0984
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608331",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 88.10778862071564,
"release_spin_rate": 2246.884199292124,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 88.10778862071564,
"release_spin_rate": 2246.884199292124,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.1078,
"release_spin_rate": 2246.8842,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0984,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7027,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.8584,
"sample_weight": 1.0,
"run_prevention_factor": 0.927,
"strikeout_factor": 1.0097,
"walk_factor": 0.968,
"homer_factor": 0.8118,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608331",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.927,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.927,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.968,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.82,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0097,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260930_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260930 | 20260930_CHC@SD | away | Kevin Gausman | Kevin Gausman | True | 5.2 | 3.1 | -7 | 4 | 3 | -1 | 7/5 | 0/0 | 9/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.50844277673546,
"WHIP": 1.2720450281425892,
"IP": 177.2,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.552,
"recent_avg_IP": 5.467,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1241,
"sample_weight": 1.0,
"run_prevention_factor": 0.9894,
"strikeout_factor": 1.028,
"walk_factor": 0.942,
"homer_factor": 1.0183,
"regression_flag": "neutral",
"k_percent": 24.5,
"bb_percent": 6.3,
"woba": 0.316,
"xwoba": 0.309,
"barrel_percent": 7.7,
"hard_hit_percent": 40.0,
"whiff_percent": 27.7
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592332",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 16.0,
"R": 17.0,
"H": 30.0,
"BB": 6.0,
"SO": 35.0,
"HR": 8.0,
"BF": 117.0,
"Pitches": 494.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 6.0,
"BB": 1.2,
"SO": 7.0,
"HR": 1.6,
"BF": 23.4,
"Pitches": 98.8
},
"rates": {
"ERA": 5.2683,
"WHIP": 1.3171,
"ER_per_IP": 0.58537,
"H_per_IP": 1.09756,
"BB_per_IP": 0.21951,
"SO_per_IP": 1.28049,
"HR_per_IP": 0.29268
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 28.0,
"R": 29.0,
"H": 60.0,
"BB": 12.0,
"SO": 61.0,
"HR": 11.0,
"BF": 235.0,
"Pitches": 957.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.9,
"H": 6.0,
"BB": 1.2,
"SO": 6.1,
"HR": 1.1,
"BF": 23.5,
"Pitches": 95.7
},
"rates": {
"ERA": 4.5,
"WHIP": 1.2857,
"ER_per_IP": 0.5,
"H_per_IP": 1.07143,
"BB_per_IP": 0.21429,
"SO_per_IP": 1.08929,
"HR_per_IP": 0.19643
}
},
"season": {
"games": 32,
"totals": {
"IP": 177.2,
"ER": 89.0,
"R": 96.0,
"H": 179.0,
"BB": 47.0,
"SO": 184.0,
"HR": 26.0,
"BF": 750.0,
"Pitches": 3003.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7812,
"R": 3.0,
"H": 5.5938,
"BB": 1.4688,
"SO": 5.75,
"HR": 0.8125,
"BF": 23.4375,
"Pitches": 93.8438
},
"rates": {
"ERA": 4.5084,
"WHIP": 1.272,
"ER_per_IP": 0.50094,
"H_per_IP": 1.0075,
"BB_per_IP": 0.26454,
"SO_per_IP": 1.03565,
"HR_per_IP": 0.14634
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.963,
"predicted_H": 5.862,
"predicted_BB": 1.368,
"predicted_SO": 6.277,
"predicted_HR": 1.211,
"predicted_ERA": 4.816,
"predicted_WHIP": 1.3059
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.963,
"final": 2.9781,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.862,
"final": 6.3253,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.368,
"final": 0.8111,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.277,
"final": 6.1642,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.211,
"final": 1.5322,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.816,
"final": 4.816,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3059,
"final": 1.3059,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 28,
"H": 60,
"BB": 12,
"SO": 61,
"HR": 11,
"ERA": 4.5,
"WHIP": 1.2857142857142858,
"K9": 9.803571428571429,
"HR9": 1.7678571428571428,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.9990057719586398,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592332",
"player_name": "Kevin Gausman",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 162,
"wins": 89,
"losses": 73,
"win_pct": 0.5494,
"runs_scored": 850.0,
"runs_allowed": 703.0,
"run_differential": 147.0,
"run_differential_per_game": 0.9074,
"avg_runs_scored": 5.2469,
"avg_runs_allowed": 4.3395,
"offense_index": 1.1674,
"defense_index": 1.0357,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.153
},
"opponent": {
"team": "SD",
"games": 162,
"wins": 91,
"losses": 71,
"win_pct": 0.5617,
"runs_scored": 722.0,
"runs_allowed": 681.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2531,
"avg_runs_scored": 4.4568,
"avg_runs_allowed": 4.2037,
"offense_index": 0.9916,
"defense_index": 1.0692,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.5,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1884
},
"edges": {
"quality_edge": -0.0354,
"offense_edge": 0.1674,
"opponent_offense_edge": -0.0084,
"defense_strength": 0.0357,
"opponent_defense_weakness": -0.0692,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0,
"run_prevention": 0.9969,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592332",
"profile": {
"available": true,
"pitcher_id": "592332",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 698.0,
"k_percent": 24.5,
"bb_percent": 6.3,
"woba": 0.316,
"xwoba": 0.309,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 40.0,
"avg_best_speed": 77.1581,
"avg_hyper_speed": 94.4959,
"whiff_percent": 27.7,
"swing_percent": 50.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0047,
"command_and_miss": 0.4243,
"regression_edge": 0.2,
"xwoba_edge": 0.0857,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.3,
"whiff_edge": 0.3571,
"bb_edge": 0.725,
"pitch_design_score": -0.0441
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592332",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 89.07749610166415,
"release_spin_rate": 2007.4215713814062,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 89.07749610166415,
"release_spin_rate": 2007.4215713814062,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.0775,
"release_spin_rate": 2007.4216,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0441,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3148,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1241,
"sample_weight": 1.0,
"run_prevention_factor": 0.9894,
"strikeout_factor": 1.028,
"walk_factor": 0.942,
"homer_factor": 1.0183,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592332",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9894,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9894,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0183,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.028,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 9,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260930_CHC@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260930 | 20260930_CHC@SD | home | Nick Pivetta | Nick Pivetta | True | 5.0 | 3.1 | -5 | 2 | 1 | -1 | 5/3 | 4/2 | 5/4 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 2.855769230769231,
"WHIP": 1.0096153846153846,
"IP": 34.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.156,
"sample_weight": 0.45,
"run_prevention_factor": 0.9867,
"strikeout_factor": 1.0141,
"walk_factor": 0.9685,
"homer_factor": 1.0105,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 5.7,
"woba": 0.249,
"xwoba": 0.277,
"barrel_percent": 10.1,
"hard_hit_percent": 38.2,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 34.2,
"season_ERA": 2.856,
"season_WHIP": 1.01,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "601713",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 3.0,
"R": 3.0,
"H": 15.0,
"BB": 2.0,
"SO": 22.0,
"HR": 2.0,
"BF": 83.0,
"Pitches": 341.0
},
"per_game": {
"IP": 4.1,
"ER": 0.6,
"R": 0.6,
"H": 3.0,
"BB": 0.4,
"SO": 4.4,
"HR": 0.4,
"BF": 16.6,
"Pitches": 68.2
},
"rates": {
"ERA": 1.2462,
"WHIP": 0.7846,
"ER_per_IP": 0.13846,
"H_per_IP": 0.69231,
"BB_per_IP": 0.09231,
"SO_per_IP": 1.01538,
"HR_per_IP": 0.09231
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 34.2,
"ER": 11.0,
"R": 11.0,
"H": 27.0,
"BB": 8.0,
"SO": 42.0,
"HR": 2.0,
"BF": 140.0,
"Pitches": 578.0
},
"per_game": {
"IP": 4.1,
"ER": 1.375,
"R": 1.375,
"H": 3.375,
"BB": 1.0,
"SO": 5.25,
"HR": 0.25,
"BF": 17.5,
"Pitches": 72.25
},
"rates": {
"ERA": 2.8558,
"WHIP": 1.0096,
"ER_per_IP": 0.31731,
"H_per_IP": 0.77885,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.21154,
"HR_per_IP": 0.05769
}
},
"season": {
"games": 8,
"totals": {
"IP": 34.2,
"ER": 11.0,
"R": 11.0,
"H": 27.0,
"BB": 8.0,
"SO": 42.0,
"HR": 2.0,
"BF": 140.0,
"Pitches": 578.0
},
"per_game": {
"IP": 4.1,
"ER": 1.375,
"R": 1.375,
"H": 3.375,
"BB": 1.0,
"SO": 5.25,
"HR": 0.25,
"BF": 17.5,
"Pitches": 72.25
},
"rates": {
"ERA": 2.8558,
"WHIP": 1.0096,
"ER_per_IP": 0.31731,
"H_per_IP": 0.77885,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.21154,
"HR_per_IP": 0.05769
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.457,
"predicted_H": 3.77,
"predicted_BB": 1.053,
"predicted_SO": 4.696,
"predicted_HR": 0.492,
"predicted_ERA": 2.8569,
"predicted_WHIP": 1.0508
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.457,
"final": 2.7603,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.77,
"final": 4.4004,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.053,
"final": 2.5633,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.696,
"final": 4.8518,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.492,
"final": 1.2648,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8569,
"final": 2.8569,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0508,
"final": 1.0508,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 34.2,
"ER": 11,
"H": 27,
"BB": 8,
"SO": 42,
"HR": 2,
"ERA": 2.8557692307692304,
"WHIP": 1.0096153846153846,
"K9": 10.903846153846152,
"HR9": 0.5192307692307692,
"games_pitched": 8,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 0.8071273378927056,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "601713",
"player_name": "Nick Pivetta",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 162,
"wins": 91,
"losses": 71,
"win_pct": 0.5617,
"runs_scored": 722.0,
"runs_allowed": 681.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2531,
"avg_runs_scored": 4.4568,
"avg_runs_allowed": 4.2037,
"offense_index": 0.9916,
"defense_index": 1.0692,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.5,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1884
},
"opponent": {
"team": "CHC",
"games": 162,
"wins": 89,
"losses": 73,
"win_pct": 0.5494,
"runs_scored": 850.0,
"runs_allowed": 703.0,
"run_differential": 147.0,
"run_differential_per_game": 0.9074,
"avg_runs_scored": 5.2469,
"avg_runs_allowed": 4.3395,
"offense_index": 1.1674,
"defense_index": 1.0357,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.153
},
"edges": {
"quality_edge": 0.0354,
"offense_edge": -0.0084,
"opponent_offense_edge": 0.1674,
"defense_strength": 0.0692,
"opponent_defense_weakness": -0.0357,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 0.9968,
"run_prevention": 1.0181,
"strikeout": 0.9877
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "601713",
"profile": {
"available": true,
"pitcher_id": "601713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 100.0,
"k_percent": 30.0,
"bb_percent": 5.7,
"woba": 0.249,
"xwoba": 0.277,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 38.2,
"avg_best_speed": 80.1978,
"avg_hyper_speed": 93.7991,
"whiff_percent": 22.8,
"swing_percent": 47.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.506,
"command_and_miss": 0.5629,
"regression_edge": -0.8,
"xwoba_edge": 1.0,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.3429,
"bb_edge": 0.875,
"pitch_design_score": -0.0365
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "601713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 66,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 89.21211734682227,
"release_spin_rate": 2437.193161283574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 89.21211734682227,
"release_spin_rate": 2437.193161283574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.2121,
"release_spin_rate": 2437.1932,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0365,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.261,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.156,
"sample_weight": 0.45,
"run_prevention_factor": 0.9867,
"strikeout_factor": 1.0141,
"walk_factor": 0.9685,
"homer_factor": 1.0105,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "601713",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.994,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.994,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9858,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0047,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0063,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260930_CHC@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260930 | 20260930_CHW@HOU | away | Sean Burke | Sean Burke | True | 5.0 | 4.0 | -3 | 2 | 3 | 1 | 8/4 | 1/0 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3423597678916828,
"WHIP": 1.195357833655706,
"IP": 172.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.272,
"recent_avg_IP": 4.267,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1204,
"sample_weight": 1.0,
"run_prevention_factor": 0.9898,
"strikeout_factor": 1.0229,
"walk_factor": 0.99,
"homer_factor": 1.0144,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 8.7,
"woba": 0.302,
"xwoba": 0.3,
"barrel_percent": 8.3,
"hard_hit_percent": 38.8,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680732",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 9.0,
"R": 10.0,
"H": 22.0,
"BB": 12.0,
"SO": 24.0,
"HR": 1.0,
"BF": 103.0,
"Pitches": 432.0
},
"per_game": {
"IP": 4.2,
"ER": 1.8,
"R": 2.0,
"H": 4.4,
"BB": 2.4,
"SO": 4.8,
"HR": 0.2,
"BF": 20.6,
"Pitches": 86.4
},
"rates": {
"ERA": 3.4714,
"WHIP": 1.4571,
"ER_per_IP": 0.38571,
"H_per_IP": 0.94286,
"BB_per_IP": 0.51429,
"SO_per_IP": 1.02857,
"HR_per_IP": 0.04286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 22.0,
"R": 23.0,
"H": 44.0,
"BB": 25.0,
"SO": 45.0,
"HR": 6.0,
"BF": 211.0,
"Pitches": 879.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.3,
"H": 4.4,
"BB": 2.5,
"SO": 4.5,
"HR": 0.6,
"BF": 21.1,
"Pitches": 87.9
},
"rates": {
"ERA": 4.125,
"WHIP": 1.4375,
"ER_per_IP": 0.45833,
"H_per_IP": 0.91667,
"BB_per_IP": 0.52083,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.125
}
},
"season": {
"games": 32,
"totals": {
"IP": 172.1,
"ER": 64.0,
"R": 67.0,
"H": 144.0,
"BB": 62.0,
"SO": 185.0,
"HR": 19.0,
"BF": 716.0,
"Pitches": 2878.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0938,
"H": 4.5,
"BB": 1.9375,
"SO": 5.7812,
"HR": 0.5938,
"BF": 22.375,
"Pitches": 89.9375
},
"rates": {
"ERA": 3.3424,
"WHIP": 1.1954,
"ER_per_IP": 0.37137,
"H_per_IP": 0.83559,
"BB_per_IP": 0.35977,
"SO_per_IP": 1.0735,
"HR_per_IP": 0.11025
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.039,
"predicted_H": 4.45,
"predicted_BB": 2.274,
"predicted_SO": 4.809,
"predicted_HR": 0.452,
"predicted_ERA": 3.8014,
"predicted_WHIP": 1.3931
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.039,
"final": 2.0231,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.45,
"final": 5.8951,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.274,
"final": 1.7554,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.809,
"final": 4.4797,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.452,
"final": 0.6751,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8014,
"final": 3.8014,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3931,
"final": 1.3931,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 22,
"H": 44,
"BB": 25,
"SO": 45,
"HR": 6,
"ERA": 4.125,
"WHIP": 1.4375,
"K9": 8.4375,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.9606129148157826,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680732",
"player_name": "Sean Burke",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 162,
"wins": 84,
"losses": 78,
"win_pct": 0.5185,
"runs_scored": 776.0,
"runs_allowed": 720.0,
"run_differential": 56.0,
"run_differential_per_game": 0.3457,
"avg_runs_scored": 4.7901,
"avg_runs_allowed": 4.4444,
"offense_index": 1.0656,
"defense_index": 1.0114,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 4.3,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.128
},
"opponent": {
"team": "HOU",
"games": 162,
"wins": 81,
"losses": 81,
"win_pct": 0.5,
"runs_scored": 734.0,
"runs_allowed": 766.0,
"run_differential": -32.0,
"run_differential_per_game": -0.1975,
"avg_runs_scored": 4.5309,
"avg_runs_allowed": 4.7284,
"offense_index": 1.008,
"defense_index": 0.9507,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.7,
"run_differential": 22.0
},
"available": true,
"quality_score": -0.0242
},
"edges": {
"quality_edge": 0.1522,
"offense_edge": 0.0656,
"opponent_offense_edge": 0.008,
"defense_strength": 0.0114,
"opponent_defense_weakness": 0.0493,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0061,
"run_prevention": 0.9925,
"strikeout": 1.0039
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 644.0,
"k_percent": 25.8,
"bb_percent": 8.7,
"woba": 0.302,
"xwoba": 0.3,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 38.8,
"avg_best_speed": 79.3949,
"avg_hyper_speed": 93.9697,
"whiff_percent": 25.5,
"swing_percent": 49.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0777,
"command_and_miss": 0.2779,
"regression_edge": 0.0571,
"xwoba_edge": 0.3429,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.1286,
"whiff_edge": 0.0429,
"bb_edge": 0.125,
"pitch_design_score": -0.0129
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680732",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.63367275202977,
"release_spin_rate": 2515.4651388536104,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.63367275202977,
"release_spin_rate": 2515.4651388536104,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.6337,
"release_spin_rate": 2515.4651,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0129,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0923,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1204,
"sample_weight": 1.0,
"run_prevention_factor": 0.9898,
"strikeout_factor": 1.0229,
"walk_factor": 0.99,
"homer_factor": 1.0144,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680732",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9898,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9898,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 0.99,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0144,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0229,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260930_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260930 | 20260930_CHW@HOU | home | Hunter Brown | Hunter Brown | True | 5.2 | 0.2 | -15 | 3 | 3 | 0 | 7/5 | 2/1 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.186335403726708,
"WHIP": 1.2670807453416149,
"IP": 107.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.367,
"recent_avg_IP": 5.267,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4695,
"sample_weight": 1.0,
"run_prevention_factor": 0.9601,
"strikeout_factor": 1.0394,
"walk_factor": 1.06,
"homer_factor": 0.9472,
"regression_flag": "neutral",
"k_percent": 27.5,
"bb_percent": 12.2,
"woba": 0.289,
"xwoba": 0.282,
"barrel_percent": 6.0,
"hard_hit_percent": 36.9,
"whiff_percent": 26.7
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 107.1,
"season_ERA": 3.186,
"season_WHIP": 1.267,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686613",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 8.0,
"R": 10.0,
"H": 20.0,
"BB": 11.0,
"SO": 38.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 480.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 2.0,
"H": 4.0,
"BB": 2.2,
"SO": 7.6,
"HR": 0.2,
"BF": 22.2,
"Pitches": 96.0
},
"rates": {
"ERA": 2.7342,
"WHIP": 1.1772,
"ER_per_IP": 0.3038,
"H_per_IP": 0.75949,
"BB_per_IP": 0.41772,
"SO_per_IP": 1.44304,
"HR_per_IP": 0.03797
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 18.0,
"R": 20.0,
"H": 43.0,
"BB": 25.0,
"SO": 69.0,
"HR": 5.0,
"BF": 228.0,
"Pitches": 955.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 2.0,
"H": 4.3,
"BB": 2.5,
"SO": 6.9,
"HR": 0.5,
"BF": 22.8,
"Pitches": 95.5
},
"rates": {
"ERA": 2.9634,
"WHIP": 1.2439,
"ER_per_IP": 0.32927,
"H_per_IP": 0.78659,
"BB_per_IP": 0.45732,
"SO_per_IP": 1.2622,
"HR_per_IP": 0.09146
}
},
"season": {
"games": 20,
"totals": {
"IP": 107.1,
"ER": 38.0,
"R": 42.0,
"H": 81.0,
"BB": 55.0,
"SO": 124.0,
"HR": 11.0,
"BF": 451.0,
"Pitches": 1881.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9,
"R": 2.1,
"H": 4.05,
"BB": 2.75,
"SO": 6.2,
"HR": 0.55,
"BF": 22.55,
"Pitches": 94.05
},
"rates": {
"ERA": 3.1863,
"WHIP": 1.2671,
"ER_per_IP": 0.35404,
"H_per_IP": 0.75466,
"BB_per_IP": 0.51242,
"SO_per_IP": 1.15528,
"HR_per_IP": 0.10248
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.948,
"predicted_H": 4.381,
"predicted_BB": 2.355,
"predicted_SO": 6.723,
"predicted_HR": 0.461,
"predicted_ERA": 3.2468,
"predicted_WHIP": 1.2473
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.948,
"final": 2.4051,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.381,
"final": 5.519,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.355,
"final": 2.2008,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.723,
"final": 4.6709,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.461,
"final": 0.2607,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2468,
"final": 3.2468,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2473,
"final": 1.2473,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 18,
"H": 43,
"BB": 25,
"SO": 69,
"HR": 5,
"ERA": 2.963414634146341,
"WHIP": 1.2439024390243902,
"K9": 11.359756097560975,
"HR9": 0.823170731707317,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.8250946221328557,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686613",
"player_name": "Hunter Brown",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 162,
"wins": 81,
"losses": 81,
"win_pct": 0.5,
"runs_scored": 734.0,
"runs_allowed": 766.0,
"run_differential": -32.0,
"run_differential_per_game": -0.1975,
"avg_runs_scored": 4.5309,
"avg_runs_allowed": 4.7284,
"offense_index": 1.008,
"defense_index": 0.9507,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.7,
"run_differential": 22.0
},
"available": true,
"quality_score": -0.0242
},
"opponent": {
"team": "CHW",
"games": 162,
"wins": 84,
"losses": 78,
"win_pct": 0.5185,
"runs_scored": 776.0,
"runs_allowed": 720.0,
"run_differential": 56.0,
"run_differential_per_game": 0.3457,
"avg_runs_scored": 4.7901,
"avg_runs_allowed": 4.4444,
"offense_index": 1.0656,
"defense_index": 1.0114,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 4.3,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.128
},
"edges": {
"quality_edge": -0.1522,
"offense_edge": 0.008,
"opponent_offense_edge": 0.0656,
"defense_strength": -0.0493,
"opponent_defense_weakness": -0.0114,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9898,
"run_prevention": 1.023,
"strikeout": 0.9902
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686613",
"profile": {
"available": true,
"pitcher_id": "686613",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 386.0,
"k_percent": 27.5,
"bb_percent": 12.2,
"woba": 0.289,
"xwoba": 0.282,
"sweet_spot_percent": 27.6,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 36.9,
"avg_best_speed": 74.1859,
"avg_hyper_speed": 93.2534,
"whiff_percent": 26.7,
"swing_percent": 42.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6565,
"command_and_miss": 0.2721,
"regression_edge": 0.2,
"xwoba_edge": 0.8571,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.2143,
"bb_edge": -0.75,
"pitch_design_score": 0.1385
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686613",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.33714491013515,
"release_spin_rate": 2193.36097163242,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.33714491013515,
"release_spin_rate": 2193.36097163242,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.3371,
"release_spin_rate": 2193.361,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1385,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9891,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4695,
"sample_weight": 1.0,
"run_prevention_factor": 0.9601,
"strikeout_factor": 1.0394,
"walk_factor": 1.06,
"homer_factor": 0.9472,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "686613",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9601,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9601,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.06,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9472,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0394,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 28,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -15 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260930_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260930 | 20260930_PHI@ATL | away | Cristopher Sánchez | Cristopher Sánchez | True | 6.1 | 6.2 | 1 | 2 | 3 | 1 | 5/6 | 1/5 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9130434782608696,
"WHIP": 1.2028985507246377,
"IP": 207.0,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 6.273,
"recent_avg_IP": 6.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4376,
"sample_weight": 1.0,
"run_prevention_factor": 0.9628,
"strikeout_factor": 1.0629,
"walk_factor": 0.922,
"homer_factor": 1.0056,
"regression_flag": "neutral",
"k_percent": 27.0,
"bb_percent": 5.3,
"woba": 0.296,
"xwoba": 0.285,
"barrel_percent": 7.5,
"hard_hit_percent": 42.0,
"whiff_percent": 31.3
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "650911",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 18.0,
"R": 18.0,
"H": 34.0,
"BB": 6.0,
"SO": 29.0,
"HR": 5.0,
"BF": 131.0,
"Pitches": 485.0
},
"per_game": {
"IP": 6.1,
"ER": 3.6,
"R": 3.6,
"H": 6.8,
"BB": 1.2,
"SO": 5.8,
"HR": 1.0,
"BF": 26.2,
"Pitches": 97.0
},
"rates": {
"ERA": 5.1158,
"WHIP": 1.2632,
"ER_per_IP": 0.56842,
"H_per_IP": 1.07368,
"BB_per_IP": 0.18947,
"SO_per_IP": 0.91579,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 25.0,
"R": 25.0,
"H": 63.0,
"BB": 12.0,
"SO": 63.0,
"HR": 7.0,
"BF": 254.0,
"Pitches": 956.0
},
"per_game": {
"IP": 6.1,
"ER": 2.5,
"R": 2.5,
"H": 6.3,
"BB": 1.2,
"SO": 6.3,
"HR": 0.7,
"BF": 25.4,
"Pitches": 95.6
},
"rates": {
"ERA": 3.6096,
"WHIP": 1.2032,
"ER_per_IP": 0.40107,
"H_per_IP": 1.0107,
"BB_per_IP": 0.19251,
"SO_per_IP": 1.0107,
"HR_per_IP": 0.1123
}
},
"season": {
"games": 33,
"totals": {
"IP": 207.0,
"ER": 67.0,
"R": 73.0,
"H": 204.0,
"BB": 45.0,
"SO": 231.0,
"HR": 19.0,
"BF": 857.0,
"Pitches": 3158.0
},
"per_game": {
"IP": 6.1,
"ER": 2.0303,
"R": 2.2121,
"H": 6.1818,
"BB": 1.3636,
"SO": 7.0,
"HR": 0.5758,
"BF": 25.9697,
"Pitches": 95.697
},
"rates": {
"ERA": 2.913,
"WHIP": 1.2029,
"ER_per_IP": 0.32367,
"H_per_IP": 0.98551,
"BB_per_IP": 0.21739,
"SO_per_IP": 1.11594,
"HR_per_IP": 0.09179
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.962,
"predicted_H": 6.507,
"predicted_BB": 1.394,
"predicted_SO": 6.22,
"predicted_HR": 0.832,
"predicted_ERA": 4.2095,
"predicted_WHIP": 1.2475
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4056,
"form_weight": 0.5944,
"form_reliability": 0.8684,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.962,
"final": 2.1662,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.507,
"final": 5.8958,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.394,
"final": 1.2342,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.22,
"final": 4.5084,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.832,
"final": 0.4945,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2095,
"final": 4.2095,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2475,
"final": 1.2475,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.1,
"ER": 25,
"H": 63,
"BB": 12,
"SO": 63,
"HR": 7,
"ERA": 3.609625668449198,
"WHIP": 1.2032085561497328,
"K9": 9.09625668449198,
"HR9": 1.0106951871657754,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 0.8967760164200607,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650911",
"player_name": "Cristopher S\u00e1nchez",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 162,
"wins": 88,
"losses": 74,
"win_pct": 0.5432,
"runs_scored": 713.0,
"runs_allowed": 698.0,
"run_differential": 15.0,
"run_differential_per_game": 0.0926,
"avg_runs_scored": 4.4012,
"avg_runs_allowed": 4.3086,
"offense_index": 0.9788,
"defense_index": 1.0436,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.8,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.013
},
"opponent": {
"team": "ATL",
"games": 162,
"wins": 94,
"losses": 68,
"win_pct": 0.5802,
"runs_scored": 742.0,
"runs_allowed": 626.0,
"run_differential": 116.0,
"run_differential_per_game": 0.716,
"avg_runs_scored": 4.5802,
"avg_runs_allowed": 3.8642,
"offense_index": 1.0186,
"defense_index": 1.1636,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1558
},
"edges": {
"quality_edge": -0.1428,
"offense_edge": -0.0212,
"opponent_offense_edge": 0.0186,
"defense_strength": 0.0436,
"opponent_defense_weakness": -0.1636,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9949,
"run_prevention": 1.0058,
"strikeout": 0.9942
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650911",
"profile": {
"available": true,
"pitcher_id": "650911",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 773.0,
"k_percent": 27.0,
"bb_percent": 5.3,
"woba": 0.296,
"xwoba": 0.285,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 42.0,
"avg_best_speed": 78.068,
"avg_hyper_speed": 94.5227,
"whiff_percent": 31.3,
"swing_percent": 50.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3427,
"command_and_miss": 0.815,
"regression_edge": 0.3143,
"xwoba_edge": 0.7714,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.5857,
"whiff_edge": 0.8714,
"bb_edge": 0.975,
"pitch_design_score": 0.0288
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.3783652742236,
"release_spin_rate": 2082.1207290628663,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.3783652742236,
"release_spin_rate": 2082.1207290628663,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.3784,
"release_spin_rate": 2082.1207,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0288,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2055,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4376,
"sample_weight": 1.0,
"run_prevention_factor": 0.9628,
"strikeout_factor": 1.0629,
"walk_factor": 0.922,
"homer_factor": 1.0056,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "650911",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9628,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 0.9628,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.922,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0056,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0629,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260930_PHI@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260930 | 20260930_PHI@ATL | home | Tyler Mahle | Tyler Mahle | True | 6.0 | 7.0 | 3 | 0 | 1 | 1 | 2/6 | 2/1 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9865771812080535,
"WHIP": 1.2348993288590604,
"IP": 149.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.519,
"recent_avg_IP": 6.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.988,
"walk_factor": 0.966,
"homer_factor": 0.9832,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.311,
"xwoba": 0.306,
"barrel_percent": 6.8,
"hard_hit_percent": 37.1,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641816",
"report_date": "20260930",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 8.0,
"R": 10.0,
"H": 24.0,
"BB": 4.0,
"SO": 25.0,
"HR": 4.0,
"BF": 117.0,
"Pitches": 469.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 2.0,
"H": 4.8,
"BB": 0.8,
"SO": 5.0,
"HR": 0.8,
"BF": 23.4,
"Pitches": 93.8
},
"rates": {
"ERA": 2.3478,
"WHIP": 0.913,
"ER_per_IP": 0.26087,
"H_per_IP": 0.78261,
"BB_per_IP": 0.13043,
"SO_per_IP": 0.81522,
"HR_per_IP": 0.13043
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 17.0,
"R": 19.0,
"H": 48.0,
"BB": 11.0,
"SO": 57.0,
"HR": 7.0,
"BF": 235.0,
"Pitches": 923.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.9,
"H": 4.8,
"BB": 1.1,
"SO": 5.7,
"HR": 0.7,
"BF": 23.5,
"Pitches": 92.3
},
"rates": {
"ERA": 2.55,
"WHIP": 0.9833,
"ER_per_IP": 0.28333,
"H_per_IP": 0.8,
"BB_per_IP": 0.18333,
"SO_per_IP": 0.95,
"HR_per_IP": 0.11667
}
},
"season": {
"games": 27,
"totals": {
"IP": 149.0,
"ER": 66.0,
"R": 69.0,
"H": 138.0,
"BB": 46.0,
"SO": 137.0,
"HR": 20.0,
"BF": 614.0,
"Pitches": 2402.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4444,
"R": 2.5556,
"H": 5.1111,
"BB": 1.7037,
"SO": 5.0741,
"HR": 0.7407,
"BF": 22.7407,
"Pitches": 88.963
},
"rates": {
"ERA": 3.9866,
"WHIP": 1.2349,
"ER_per_IP": 0.44295,
"H_per_IP": 0.92617,
"BB_per_IP": 0.30872,
"SO_per_IP": 0.91946,
"HR_per_IP": 0.13423
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.006,
"predicted_H": 5.013,
"predicted_BB": 1.277,
"predicted_SO": 5.299,
"predicted_HR": 0.772,
"predicted_ERA": 3.0382,
"predicted_WHIP": 1.0582
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.006,
"final": 1.1715,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.013,
"final": 3.7596,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.277,
"final": 1.5778,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.299,
"final": 6.4226,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.772,
"final": 0.4509,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0382,
"final": 3.0382,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0582,
"final": 1.0582,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 17,
"H": 48,
"BB": 11,
"SO": 57,
"HR": 7,
"ERA": 2.55,
"WHIP": 0.9833333333333333,
"K9": 8.55,
"HR9": 1.05,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-24T00:00:00"
},
"recent_form_boost": 0.7720712481491159,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 162,
"wins": 94,
"losses": 68,
"win_pct": 0.5802,
"runs_scored": 742.0,
"runs_allowed": 626.0,
"run_differential": 116.0,
"run_differential_per_game": 0.716,
"avg_runs_scored": 4.5802,
"avg_runs_allowed": 3.8642,
"offense_index": 1.0186,
"defense_index": 1.1636,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1558
},
"opponent": {
"team": "PHI",
"games": 162,
"wins": 88,
"losses": 74,
"win_pct": 0.5432,
"runs_scored": 713.0,
"runs_allowed": 698.0,
"run_differential": 15.0,
"run_differential_per_game": 0.0926,
"avg_runs_scored": 4.4012,
"avg_runs_allowed": 4.3086,
"offense_index": 0.9788,
"defense_index": 1.0436,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.8,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.013
},
"edges": {
"quality_edge": 0.1428,
"offense_edge": 0.0186,
"opponent_offense_edge": -0.0212,
"defense_strength": 0.1636,
"opponent_defense_weakness": -0.0436,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0115,
"run_prevention": 0.9731,
"strikeout": 1.006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 543.0,
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.311,
"xwoba": 0.306,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 37.1,
"avg_best_speed": 80.0191,
"avg_hyper_speed": 93.8316,
"whiff_percent": 22.9,
"swing_percent": 45.6
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0664,
"command_and_miss": -0.0171,
"regression_edge": 0.1429,
"xwoba_edge": 0.1714,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.1143,
"whiff_edge": -0.3286,
"bb_edge": 0.425,
"pitch_design_score": -0.0126
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.64026118417685,
"release_spin_rate": 2134.9981031675284,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.64026118417685,
"release_spin_rate": 2134.9981031675284,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.6403,
"release_spin_rate": 2134.9981,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0126,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0897,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.988,
"walk_factor": 0.966,
"homer_factor": 0.9832,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641816",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9961,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9961,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.966,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9832,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.988,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260930_PHI@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |